このプロジェクトでは、ボールを追跡しようとしています。ボールの色が灰色の場合は、四角で囲みたいと思います。私の問題は、追跡されているボールしかないことです。すべての灰色のボールを追跡したいと思います。
誰かが私を助けてくれれば本当に感謝しています。
コードは次のとおりです(ボールとボックスは外部クラスから呼び出されます):
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Point;
[SWF(frameRate='31')]
public class Main extends Sprite
{
private var balls:Array;
private var directions:Array = [new Point(-1,-1),new Point(0,-1),new Point(1,-1),
new Point(-1,0),new Point(1,0),
new Point(-1,1),new Point(0,1),new Point(1,1)
];
private var ballNum: Number = 10;
private var ball:Ball;
private var ball2:Ball;
private var box:Box;
private var ay:Number = 5;
private var gravity:Number = 6;
private var bounce:Number = -0.9;
public function Main()
{
init();
}
private function init():void
{
balls = new Array();
for(var i:Number = 0; i < ballNum; i++)
{
ball = new Ball(Math.random() * 30);
ball.x = Math.random() * stage.stageWidth;
ball.y = Math.random() * stage.stageHeight;
ball.direction = directions[Math.floor(Math.random()*directions.length)];
addChild(ball);
balls.push(ball);
}
box = new Box();
addChild(box);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(event:Event):void
{
for(var i:int = 0; i < balls.length; i++)
{
balls[i].x += balls[i].direction.x;
balls[i].y += balls[i].direction.y;
}
if(ball.color == 0xcccccc)
{
box.x = ball.x - box.width / 2;
box.y = ball.y - box.height / 2;
}
}
}
}