Autor | Zpráva | ||
---|---|---|---|
AndreCZ Profil * |
#1 · Zasláno: 1. 4. 2011, 14:39:23
Ahoj mam promennou targetRotation, ktera mi udava ... target rotation :D.
Chtel bych, aby se _rotation casem srovnala s targetRotation, pouzivam tedy tento banalni kod: if (_rotation<tR) { _rotation += 10; } else if (_rotation>tR) { _rotation -= 10; } Problem samozrejme je, ze pokud targetRotation (tR) je -170 a _rotation 170, dochazi k otoceni o celou osu, poradil by nekdo, jak nejelegantneji tento problem vyresit? Diky moc :) |
||
flz Profil |
#2 · Zasláno: 3. 4. 2011, 11:57:43
ak som to pochopil spravne, tak
if (_rotation<Math.abs(tR)) { _rotation += 10; } else if (_rotation>Math.abs(tR)) { _rotation -= 10; } Math.abs(number) - vracia absolutnu hodnotu premennej |
||
AndreCZ Profil * |
#3 · Zasláno: 3. 4. 2011, 15:50:42
Diky za odpoved:
tohle urcite fungovat nebude, nebot: _rotation = 90; tR = -90; melo by dojit k otoceni o 180, vsak nedojde k otoceni vubec.. |
||
weroro Profil |
#4 · Zasláno: 4. 4. 2011, 09:39:59 · Upravil/a: weroro
var tR:Number = 90; // hodnota otocenia var mR:Number = tR*2; // uhol 180 function otocenie():Void { if (!AndreCZ) { // ak sa AndreCZ = false tak pridaj 90 _root.rotateMC._rotation += tR; } else if (AndreCZ) { // ak sa AndreCZ = true tak odober 90 _root.rotateMC._rotation -= tR; } /* podmienka testujuca aktualny uhol 180 a -180 */ if (_root.rotateMC._rotation == mR || _root.rotateMC._rotation == mR*(-1)) { AndreCZ = !AndreCZ; // Navratova hodnota negacie - vracia opacnu logicku hodnotu } } this.rotateButton.onRelease = otocenie; |
||
AndreCZ Profil * |
#5 · Zasláno: 6. 4. 2011, 00:10:20
Co zastupuje promenna AndreCZ?
|
||
weroro Profil |
#6 · Zasláno: 6. 4. 2011, 13:38:25
AndreCZ je logická premenná Bollean - true/false - ktorú používam ako prepínač. Ak sa premenná rovná false, tak sa objekt otáča o 90 stupňov doprava, ak sa premenná rovná true, tak sa objekt otáča o 90 stupňov doľava. podmienka na konci funkcie testuje aktuálny uhol objektu. Ak sa uhol objektu rovná 180 stupňov, tak sa premenná AndreCZ prepne do opačného stavu v akom sa práve nachádza to znamená, že ak sa AndreCZ = false prepne sa do stavu true. Ak sa uhol objektu rovná -180 stupňov, tak sa znovu premenná AndreCZ prepne na opačnú hodnotu, to znamená, že ak sa teraz AndreCZ = true, tak sa prepne na false. A takto sa to deje dookola.
|
||
AndreCZ Profil * |
#7 · Zasláno: 7. 4. 2011, 19:39:35
No to sem pochopil, ale neni inicializovana..
|
||
weroro Profil |
#8 · Zasláno: 9. 4. 2011, 22:26:59
To vôbec nevadí. Anonymná premená typu boolean (nepreddefinovaná) má vždy hodnotu false (respektíve undefined, ale to sa považuje za false) a potom sa len prepíše na true. Script je plne funkčný. Ak ti to tak strašne vadí pridaj si na začiatok scriptu
var AndreCZ:Boolean; |
||
Časová prodleva: 14 let
|
0