Elikkäs teen uuden topikin tyhmiin kysymyksiin kirjoittamisen sijaan sen vuoksi, että kysymykset meinaavat hukkua sinne ennen kuin vastauksia tulee.
Ongelma siis on, että ammukset meinaavat mennä seinien läpi, jos ne liikkuvat vähänkin lujempaa, kuinka siis saisin tuon ongelman korjattua? Grandi sanoikin että niitä pitäisi liikuttaa monissa erissä ja tarkistaa joka kierroksella että onko törmäyksiä syntynyt, mutta kuinka käytännössä teen tämän?
Toinen kysymys on, että minkäköhän takia ohjelma heittää MAVia kun ampuu tilejen nurkkaan, eli siis jos on tile, sen vieressä tile jonka päällä on tile, niin kun niiden liitoskohtaan ampuu niin syntyy MAV? Tuo saattaa johtua ihan vaan siitä että koodini on todella purkkaa, mutta kysyn tätä siksi että jos jollain muulla on vaikka ollut sama ongelma.
Panosten liikuttaminen yms.
Re: Panosten liikuttaminen yms.
Teppo P. wrote:Ongelma siis on, että ammukset meinaavat mennä seinien läpi, jos ne liikkuvat vähänkin lujempaa, kuinka siis saisin tuon ongelman korjattua? Grandi sanoikin että niitä pitäisi liikuttaa monissa erissä ja tarkistaa joka kierroksella että onko törmäyksiä syntynyt, mutta kuinka käytännössä teen tämän?
Code: Select all
For i = 0 To 4
Liikuta ukkoo yksi pikseli.
Tarkista törmäykset
Next i
Re: Panosten liikuttaminen yms.
Code: Select all
For ammus.ammukset=Each ammukset
MoveObject ammus\obj,1
panostörmää=CountCollisions(ammus\obj)
For g=1 To panostörmää
If GetCollision (ammus\obj,g)=kenttä Then
Delete ammus
DeleteObject ammus\obj
EndIf
Next g
Next ammus
Re: Panosten liikuttaminen yms.
Laita exit tuohon deleteobjectin jälkeen. Muuten käy niin, että objekti poistetaan, mutta sitä yritetään vielä liikuttaa sen jälkeen, jolloin tulee MAV.
Re: Panosten liikuttaminen yms.
Eli siis näin?:
Ei toimi ei.
Code: Select all
For ammus.ammukset=Each ammukset
For jkl=1 to 5
MoveObject ammus\obj,1
panostörmää=CountCollisions(ammus\obj)
For g=1 To panostörmää
If GetCollision (ammus\obj,g)=kenttä Then
Delete ammus
DeleteObject ammus\obj
Exit
EndIf
Next g
Next jkl
Next ammus
Re: Panosten liikuttaminen yms.
Näköjään DeleteObject ja Delete on väärin päin. Vaihda vielä ne toisin päin niin pitäisi toimia.
Re: Panosten liikuttaminen yms.
Itse olen tehnyt panosten törmäyksen näin:
Tarkistetaan onko panos kartan päällä.
Code: Select all
If GetMap(2,ObjectX(pati\obj),ObjectY(pati\obj))=1 Then
Re: Panosten liikuttaminen yms.
Tuota voisi itsekkin käyttää kun välillä on collisionin kanssa ongelmia.skinkken wrote:Itse olen tehnyt panosten törmäyksen näin:Tarkistetaan onko panos kartan päällä.Code: Select all
If GetMap(2,ObjectX(pati\obj),ObjectY(pati\obj))=1 Then