Animacja wokół Elipsy - AS3
Skrypt tworzy animację piłki poruszającej się wokół elipsy o wysokości: 100 pikseli oraz szerokości 200 pikseli. Odległość od osi X jest obliczona na podstawie sinusa, a od osi Y na podstawie cosinusa.
Listing
//KOD DLA PLIKU Elipsa.as
package {
import flash.display.Sprite;
import flash.events.Event;
public class Elipsa extends Sprite {
private var pilka:Pilka;
private var kat:Number = 0;
private var centrumX:Number = 300;
private var centrumY:Number = 200;
private var promienX:Number = 200;
private var promienY:Number = 100;
private var predkosc:Number = .1;
public function Elipsa() {
init();
}
private function init():void {
pilka = new Pilka();
addChild(pilka);
pilka.x = 0;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(e:Event):void {
pilka.x = centrumX + Math.sin(kat) * promienX;
pilka.y = centrumY + Math.cos(kat) * promienY;
kat += predkosc;
}
}
}
//KOD dla Plika.as
package {
import flash.display.Sprite;
public class Pilka extends Sprite {
private var promien:Number;
private var kolor:uint;
public function Pilka(promien:Number=40, kolor:uint=0xff0000) {
this.promien = promien;
this.kolor = kolor;
init();
}
public function init():void {
graphics.beginFill(kolor);
graphics.drawCircle(0,0, promien);
graphics.endFill();
}
}
}
package {
import flash.display.Sprite;
import flash.events.Event;
public class Elipsa extends Sprite {
private var pilka:Pilka;
private var kat:Number = 0;
private var centrumX:Number = 300;
private var centrumY:Number = 200;
private var promienX:Number = 200;
private var promienY:Number = 100;
private var predkosc:Number = .1;
public function Elipsa() {
init();
}
private function init():void {
pilka = new Pilka();
addChild(pilka);
pilka.x = 0;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(e:Event):void {
pilka.x = centrumX + Math.sin(kat) * promienX;
pilka.y = centrumY + Math.cos(kat) * promienY;
kat += predkosc;
}
}
}
//KOD dla Plika.as
package {
import flash.display.Sprite;
public class Pilka extends Sprite {
private var promien:Number;
private var kolor:uint;
public function Pilka(promien:Number=40, kolor:uint=0xff0000) {
this.promien = promien;
this.kolor = kolor;
init();
}
public function init():void {
graphics.beginFill(kolor);
graphics.drawCircle(0,0, promien);
graphics.endFill();
}
}
}
Ten wpis posiada swój wątek na forum
Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane
http://forum.funkcje.net/forum/viewtopic.php?f=12&t=4120
Dane do logowania na forum są takie same jak na funkcje.net
Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane
http://forum.funkcje.net/forum/viewtopic.php?f=12&t=4120
Dane do logowania na forum są takie same jak na funkcje.net
Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38319
Ranga: Administrator serwisu Punktów: 38319
Komentarze użytkowników
:: Losowe artykuły
