Uživatelské nástroje

Nástroje pro tento web


vyuka:oci_ktere_se_porad_divaji_za_kurzorem

Oko dívající se za kurzorem

Nakreslete oko, které se pořád dívá za kurzorem.¨

Pro přehrání obsahu potřebujete Adobe Flash Plugin.

Při tom využijte metodu nastavSmer z třídy Kutil. Tato metoda přijímá jako vstup souřadnice objektu, který se má otáčet za cílem, a souřadnice cíle za kterým se má otáčet. Vrací objekt který má atribut rotace v němž vrátí hodnotu,úhlu natočení k cíli. Na tuto hodnotu by měl být nastaven atribut _rotation (připomeňme, že rotace se nastavuje v MovieClipu vlastností _rotation, nulový úhlel je natočení doleva):

//ve třídě Kutil je definována následující metoda:
	static function nastavSmer(x:Number, y:Number, xCil:Number, yCil:Number):Object {
		//vstupy: 
		//	x,y - moje souradnice (tj. _x a _y)
		//	xCil, yCil - souradnice cíle (tj. cílové _x a _y)
		//výstupy:
		// v.rotace - rotace pro nasměrování k cíli (tj. _rotation)
        ...

Nejprve si naprogramujeme třídu Oko, která nastavuje pozici oka a otáčí zornicemi:

class oko extends MovieClip {
	var zornice_mc:MovieClip;
	function oko() {
		zornice_mc._rotation = 0;
	}
	function koukejSmerem(smer:Number) {
		zornice_mc._rotation = smer;
	}
	function get sX() {
		return this._x;
	}
	function get sY() {
		return this._y;
	}
	function set sX(x:Number) {
		this._x = x;
	}
	function set sY(y:Number) {
		this._y = y;
	}
}

Vlastní klip uděláme tak, že do prvního framu napíšeme skript, který otáčí za kurzorem dvě instance oka, oko1 a oko2. Nejdříve nastavíme x-ovou souřadnici pro každé oko (oko1.sX=100 a oko2.sX=300, a poté si vytvoříme objekt výsledek, do kterého nám v atributu rotace statická funkce Kutil.nastavSmer vrátí potřebné natočení ke kurzoru. Souřadnice kurzoru xmouse a ymouse a souřadnice obou instancí třídy oko dáme jako vstupní parametry této funkce. Výsledné natočení obdržíme v atributu výsledek.rotace, a ten dáme jako vstupní parametr metody koukejSmerem třídy Oko, která obě oči natočí příslušným směrem.

Vše zabalíme do funkce onEnterFrame, která se bude neustále vykonávat před každým vykreslením sníámku.

V prvním snímku tedy budeme mít následující skript:

oko1.sX = 100;
oko2.sX = 300;
 
 
var výsledek:Object=newObject;
function onEnterFrame() {	
	výsledek = Kutil.nastavSmer(oko1._x, oko1._y, _xmouse, _ymouse);	
	oko1.koukejSmerem(výsledek.rotace);
        výsledek = Kutil.nastavSmer(oko2._x, oko2._y, _xmouse, _ymouse);	
	oko2.koukejSmerem(výsledek.rotace);
}

Zdrojový text celého příkladu je zde

vyuka/oci_ktere_se_porad_divaji_za_kurzorem.txt · Poslední úprava: 2007/06/06 05:09 autor: kofranek