Panosten liikuttaminen yms.

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
Teppo P.

Panosten liikuttaminen yms.

Post by Teppo P. »

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.
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Panosten liikuttaminen yms.

Post by Sly_Jack0 »

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
Teppo P.

Re: Panosten liikuttaminen yms.

Post by Teppo P. »

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


Kuinka siis saisin tuohon sen? Jos heitän vaan tuonne moveobjectin eteen for k=1 to 5 ja tuonne next g:n jälkeen next k:n, niin maviahan se heittää kun panos osuu seinään.
regalis
Advanced Member
Posts: 268
Joined: Mon Aug 27, 2007 9:44 pm

Re: Panosten liikuttaminen yms.

Post by regalis »

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.
Teppo P.

Re: Panosten liikuttaminen yms.

Post by Teppo P. »

Eli siis näin?:

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

Ei toimi ei.
regalis
Advanced Member
Posts: 268
Joined: Mon Aug 27, 2007 9:44 pm

Re: Panosten liikuttaminen yms.

Post by regalis »

Näköjään DeleteObject ja Delete on väärin päin. Vaihda vielä ne toisin päin niin pitäisi toimia.
User avatar
skinkken
Advanced Member
Posts: 453
Joined: Sat Sep 01, 2007 4:00 pm
Location: Helsinki

Re: Panosten liikuttaminen yms.

Post by skinkken »

Itse olen tehnyt panosten törmäyksen näin:

Code: Select all

If GetMap(2,ObjectX(pati\obj),ObjectY(pati\obj))=1 Then
Tarkistetaan onko panos kartan päällä.
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Panosten liikuttaminen yms.

Post by phons »

skinkken wrote:Itse olen tehnyt panosten törmäyksen näin:

Code: Select all

If GetMap(2,ObjectX(pati\obj),ObjectY(pati\obj))=1 Then
Tarkistetaan onko panos kartan päällä.
Tuota voisi itsekkin käyttää kun välillä on collisionin kanssa ongelmia. :)
Image
Post Reply