소스(스테이지상에 미리 'bflym'이란 이름의 날개짓하는 나비 무비클립을
놓아두었다):
var bfly = bflym;
var fAngle = 0; //초기 각도값
var rotR = 100; //회전 반지름값
var angVel = -2*Math.PI/120; //각속도값 3도
var rightEnd = stage.stageWidth;
var downEnd = stage.stageHeight;
var line:Sprite=new Sprite();
function init(){
bfly.rx = rotR;
bfly.ry = 0;
bfly.vx = 0;
bfly.vy = rotR * angVel;
bfly.x = bfly.rx + rightEnd/2;
bfly.y = bfly.ry + downEnd/2;
addChild(line); //회전 궤적 그릴 선 추가
line.graphics.lineStyle(1);
line.graphics.moveTo(bfly.x, bfly.y);
stage.addEventListener(Event.ENTER_FRAME,loop);
}
function loop(e:Event){
bfly.rx += bfly.vx;
bfly.ry += bfly.vy;
bfly.vx += -angVel * angVel * bfly.rx; //향심력 계산
bfly.vy += -angVel * angVel * bfly.ry;
bfly.x = bfly.rx + rightEnd/2;
bfly.y = bfly.ry + downEnd/2;
//진행방향으로 회전시키기
fAngle = Math.atan2(bfly.y-200, bfly.x-275);
bfly.rotation = fAngle*180/Math.PI;
if(bfly.rx > 100){ //한바퀴 돌때마다 선 색 변경
line.graphics.clear();
var colors=Math.random()*16777215;
line.graphics.lineStyle(1, colors, 1);
line.graphics.moveTo(bfly.x, bfly.y);
}
line.graphics.lineTo(bfly.x, bfly.y);
}
init();
|