Jeg har en sprite som bruges til at skude 10 andre sprite's ned med. Jeg bruger Sprite(N) within Sprite(W) 10 gange, er der ikke en nemmere måde at gøre dette. Sprite(n) within Sprite(9 to 18)???
Dit forslag var også min egen mulige løsning, men den repeat'er kun en gang eller X antal gange dvs. W har ikke en konstant værdi af 9 til 18 konstant.
Hvis alle de sprites du skal skyde ned, har et script på sig ala:
on shoot me if sprite(me.spriteNum).intersects(sprite(10)) then -- dø på en eller anden måde end if end
så kan du når du skyder kalde:
sendAllSprites(#shoot)
Grunden til at jeg bruger intersects er, at within kræver at sprite'n er fuldstændig indenfor den ande sprite og det er ret svært i et skyde spil. Men hvis du vil have den med kan du bare lave det om der hvor jeg tester overneover
er 3-4 gange langsommere sammenlignet med følgende metode:
Jeg har netop lavet ét færdigt script baseret på "within" kommandoen, og ét script der "emulere" "within" kommandoen ved at jeg benyttet "intersect" kommandoen i stedet og derefter sammenligner x og y koordinaterne mellem hver sprite (dvs. mellem sprite 10 og me.spriteNum). "intersect" versionen fylder 3-4 gange flere linier, men den er paradoksalt nok 3-4 gange hurtigere.
Herefter har jeg sammenlignet forbruget af millisekunder efter 10.000 gennemløb, og på min pc kostede "within" rutinen i gennemsnit ca. 20 millisekunder, og "intersect" rutinen som kostede i gennemsnit ca. 5 millisekunder.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.