Autor Zpráva
AndreCZ
Profil *
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
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 *
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
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 *
Co zastupuje promenna AndreCZ?
weroro
Profil
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 *
No to sem pochopil, ale neni inicializovana..
weroro
Profil
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;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0