マウスの位置によって回転速度が変わる万華鏡
マウス位置を変数として回転の計算をするスクリプト
//変数定義
var numBalls:int = 1000;
var vr:Number = 0.05;
var balls:Array = new Array();
//複数のボールの初期位置を決定、配列にそれぞれを格納
for(var i:int = 0; i<numBalls; i++){
var ball:Ball = new Ball(Math.random() * 10 +5, Math.random() * 0xffffff);
addChild(ball);
ball.x = Math.random() * stage.stageWidth * 2 - stage.stageWidth/2;
ball.y = Math.random() * stage.stageHeight * 2 - stage.stageHeight/2;
balls.push(ball);
}
addEventListener(Event.ENTER_FRAME, onEnterFrame);
//フレーム毎のイベント
function onEnterFrame(e:Event):void {
var angle:Number = (mouseX - stage.stageWidth/2) * 0.0001;
var cos:Number = Math.cos(angle);
var sin:Number = Math.sin(angle);
//それぞれのボールの動きをひとつずつ計算
for(var i:int = 0; i<numBalls; i++){
var ball:Ball = balls[i];
var x1:Number = ball.x - stage.stageWidth/2;
var y1:Number = ball.y - stage.stageHeight/2;
var x2:Number = cos * x1 - sin * y1;//回転の公式
var y2:Number = cos * y1 + sin * x1;//回転の公式
ball.x = stage.stageWidth/2 + x2;
ball.y = stage.stageHeight/2 + y2;
}
}







関連する記事