Eli miten saa laitettua typeillä tehdyille vihuille keskinäisen törmäyksentunnistuksen, eli miten vihut saisi törmäämään toisiinsa?
Jos joku viitsisi hieman avittaa, kun en löytänyt mistään esimerkeistä tähän vastausta.
Vihut törmäämään toisiinsa
- wilizucoder
- Member
- Posts: 81
- Joined: Sat Sep 08, 2007 11:24 pm
- Location: Espoo
- Contact:
Re: Vihut törmäämään toisiinsa
Joo, tämä onkin aika vaikea ongelma. Tässä olisi yksi ratkaisu:
Ei ole testattu CoolBasicilla, mutta pitäisi toimia. Toivottavasti tästä oli apua.
-Pate5
Code: Select all
'Viholliset typeen
Type vihut
Field obj
EndType
ukko=loadobject("media/guy.bmp",72)'ladataan objekti
'luodaan 10 vihollista ja laitetaan ne random paikkoihin
for i=1 to 10
vihu.vihut=new(vihut)
vihu\obj=cloneobject(ukko
next i
for vihu.viholliset=each viholliset 'käydään viholliset läpi
for vihu2.viholliset=each viholliset 'käydään viholliset läpi eri nimellä
if vihu<>vihu2 then 'jos vihu=eri kuin vihu2
setupcollision vihu\obj,vihu2\obj,2,2,2 'laitetaan viholliset törmäämään toisiinsa
setupcollision vihu2\obj,vihu\obj,2,2,2
endif
next vihu2
next vihu
-Pate5
CoolBasic henkilökuntaa
Graafikko
Graafikko
Re: Vihut törmäämään toisiinsa
PateViitosen ratkaisu on siinä mielessä huono että siinä kaikki vihut käydään keskenään läpi kahteen kertaan.
Tällä virityksellä käydään vihut keskenään vain kerran.
Tällä virityksellä käydään vihut keskenään vain kerran.
Code: Select all
For v.VIHU = Each VIHU
v2.VIHU = After(v)
While v2 <> NULL
SetupCollision v\obj, v2\obj, 2, 2, 2
SetupCollision v2\obj, v\obj, 2, 2, 2
v2 = After(v2)
Wend
Next v
- wilizucoder
- Member
- Posts: 81
- Joined: Sat Sep 08, 2007 11:24 pm
- Location: Espoo
- Contact:
Re: Vihut törmäämään toisiinsa
Kiitos, tätä juuri tarkoitin.
Re: Vihut törmäämään toisiinsa
Tämä on hyvä koodi, muuta miksi se tiputtaa FPS:n 15:ta?
Niin, ja anteeksi vanhan topicin herättämisestä
Niin, ja anteeksi vanhan topicin herättämisestä
Re: Vihut törmäämään toisiinsa
Jos törmäyksentunnistuksia asettaa loopissa, peli hidastuu varmasti. Ne täytyy asettaa ennen looppia. Jos peli hidastuu kuitenkin sen jälkeenkin, kyse on varmaan liian suuresta vihollismäärästä. Jokaisen kohdalla kun törmäys pitää tarkastaa erikseen, mihin kuluu aikaa. Kokeileppa vähentää vihollisten määrää.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)