. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .


 
 
SEGÉDLETEK Flash játékok

Kígyójáték megoldása minimális ActionScript kóddal
  feltöltve: 2004.10.25 | szerző: ismeretlen | olvasva: 6759 alkalommal

           
 
Megoldás by Nancsi

A zip-ben található könyvtárak:

- small: ez a kisebb
- safe: van benne pár ellenőrzés, így nagyobb lett

Ezeken belül a withcomment-es dolgokat éri meg nézegetni, a másik két változat csak azért van, hogy jól le lehessen mérni a méretet.

Csak pár trükk, amit alkalmaztam az optimalizálás során a teljesség igénye nélkül:


• Default értéket (pl az alapértelmezett mozgató karaktereket, fordulási sugarat) nem írok scriptbe, ha egyszer be lehet tenni dynamic textbe is :-)
• Egy .as-t felhasználok több helyen is. Pl az _2.as-ben van egy stop(), és ezért az _2.as-t includeolom be mindenhová, ahová stop kell. Nyilván a többi utasítás ilyen helyeken nem csinál semmi értelmeset.
• for(;++I<99;) egyenértéku a for(I=0;I<99;I++) ciklussal ha I előtte nem volt használva (undefined), csak rövidebb leírni.
• A kódban lehetőleg minden változó 1 karakteres. Néhány előre definiált objectet, amit többször használnék is elneveztem 1 karakteresnek, pl Z=Math. Ezután már nem Math.sin-t használok, hanem Z-sin-t, ami 3-3 karakter spórolás minden egyes helyen.
• van benne 1 ilyen rész: Q=Z.asin(10/P), Q=Z.tan(10/P)
Na ebből az egyik elég, csak bennefelejtettem mindkettőt:-( Az első a teljesen korrekt, de a második is tök hasonló számokat ad valamiért. Kicsit olyan, mint amikor az egyiptomiak rossz képlettel számolták a háromszög területét, de mivel speciális háromszögeken próbálgatták, az eredmény mégis egész jó lett :-)
• Kerekítés, ahol csak lehet. Például a kaja sugara 2.5, a fej sugara 5. A fej-kaja távolság négyzete akkor jó, ha kisebb 7.5*7.5-nél. Ez 56.25 lenne, de ha 56-ot írunk helyette, az is teljesen jó (nem lehet észrevenni a pontatlanságot).
• Radiánból fokot úgy kell számítani, hogy Fok=Radian*180/Math.Pi. 180*/Math.Pi azonban körülbelül 57, és a Fok=Radian*57 sokkal rövidebb.
• onEnterFrame=S0.gotoAndPlay(8) Ennek értelme: ha az onEnterFrame függvényt ki szeretnénk loni, akkor adjunk neki simán egy invalid értéket (valamit biztos visszaad a gotoAndPlay:-)
 
           
 
 

© Devnet.hu. A segédletek semmilyen formában nem másolhatók, publikálhatók a Devnet.hu és a szerzők közös írásos engedélye nélkül.
 
. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .