No, täytyykö todellakin laittaa SetupCollision kaikkiin obj:hin ja myös toisin päin törmäyksiä varten.
Eli palikka1 tunnistaa palikka2 ja toinen palikka2 tunnistaa palikka1.
Teen ohjelmaa jossa on noin 20 obj:ia, joten tunnistuksia tulisi jälkimmäisellä tavalla, LIIKAA!!!
Objectien tunnistus ongelma
Re: Objectien tunnistus ongelma
Jos teet ne tyypeillä, joka on TODELLA kannattavaa jos on niin monta objektia, niin ei siihen mene kuin muutama, muutaa yleisesti täytyy. Jos törmäys on vain silloin kun sinä törmäät vihuun eikä silloin kun vihu törmää sinuun niin vihu menee sinusta läpi mutta jos itse törmäät silloin vihuun niin siinä on törmäys. Ymmärsitkö?
Re: Objectien tunnistus ongelma
Eli onko 10 muuttujaa todellakin 9*8*7*6*5*4*3*2 ja nämä vielä toisin päin...????Raato wrote:No, täytyykö todellakin laittaa SetupCollision kaikkiin obj:hin ja myös toisin päin törmäyksiä varten.
Eli palikka1 tunnistaa palikka2 ja toinen palikka2 tunnistaa palikka1.
Teen ohjelmaa jossa on noin 20 obj:ia, joten tunnistuksia tulisi jälkimmäisellä tavalla, LIIKAA!!!
Ja kuinka saadaan törmäys kopioituun palikkaan tunnistettua jos se on sama kuin alkuperäinen.
Ohjelma antaa virheen SetupCollision palikka1,palikka1, 1, 1, 2
Re: Objectien tunnistus ongelma
Kymmenelle objektille törmäyksentunnistuksia tarvitaan "vain" 10*9=90Vieras wrote: Eli onko 10 muuttujaa todellakin 9*8*7*6*5*4*3*2 ja nämä vielä toisin päin...????
Ja kuinka saadaan törmäys kopioituun palikkaan tunnistettua jos se on sama kuin alkuperäinen.
Ohjelma antaa virheen SetupCollision palikka1,palikka1, 1, 1, 2
Objektien ei tarvitse törmätä itseensä. Jos teet objektit typeillä niin törmäykset kannattaa laittaa näin
Code: Select all
for o1.objektit=each objektit
for o2.objektit=each objektit
if o1<>o2 then setupcollision o1\obj,o2\obj,1,1,2
next o2
next o1
Quidquid latine dictum sit, altum videtur.
Voitot: Viikkokisa XVII
Voitot: Viikkokisa XVII
-
- Advanced Member
- Posts: 349
- Joined: Mon Aug 27, 2007 9:00 pm
- Location: Lapinjärvi, Finland
- Contact:
Re: Objectien tunnistus ongelma
Tässä vielä vähän toisenlainen lähestymistapa
Tämän hyöty siis on siinä ettei jokaista objektia tarvitse käydä läpi jokaisen objektin kohdalla, vaan käydään vaan sen objektin jälkeiset objektit, niihin aikaisempiinhan on jo asetettu törmäys, eli seuraavasti:
objekti 1 asetetaan törmäämään objektiin 2, objektiin 3, objektiin 4...
objekti 2 asetetaan törmäämään objektiin 3, objektiin 4...
objekti 3 asetetaan törmäämään objektiin 4...
EDIT: Törmäyksien kokonaismäärä näköjään kuitenkin pysyy samana joten nopeutta ei taida tulla lisää, mutta on hyvä muistaa tämä "kikka" jos aiot muuten päivitellä (katsoa vaikka että törmäävätkö) objektijoukkoja keskenään.
Code: Select all
For o1.objektit=Each objektit
o2.objektit=First(objektit)
o2=After(o1)
// valitaan aina seuraava objekti
While o2<>NULL // kunnes saavutetaan viimeinen objekti
//asetetaan molemmat törmäämään toisiinsa
SetupCollision o1\obj,o2\obj,1,1,2
SetupCollision o2\obj,o1\obj,1,1,2
o2=After(o2)
Wend
Next o1
objekti 1 asetetaan törmäämään objektiin 2, objektiin 3, objektiin 4...
objekti 2 asetetaan törmäämään objektiin 3, objektiin 4...
objekti 3 asetetaan törmäämään objektiin 4...
EDIT: Törmäyksien kokonaismäärä näköjään kuitenkin pysyy samana joten nopeutta ei taida tulla lisää, mutta on hyvä muistaa tämä "kikka" jos aiot muuten päivitellä (katsoa vaikka että törmäävätkö) objektijoukkoja keskenään.
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
Runoblogi, vuodatusta ja sekoiluja.
Re: Objectien tunnistus ongelma
No niin, itsellenikin oli tästä hyötyä kun botit aina menivät toisten päälle mutta ei kauaa.