0
ステージの周りをランダムに移動するボールの配列があります。しかし、私は技術的にそれを防ぐ必要があるコードを持っていますが、いくつかのいくつかは、私の段階の境界を越えてスリップする。誰でも何が起こっているか知っていますか? はここに私のクラスです:ステージ境界とランダムに移動するオブジェクト
関数move() - すべてのフレームと呼ばれる、第二
for (var i:int = 0; i < (numofBalls+1); i++)
{
if (balls[i].y + ball.velY < 0 + pR ||
balls[i].y + ball.velY > 600 - pR)
{
balls[i].angle = -ball.angle;
updateballVelocities(balls[i]);
}
if (balls[i].x + balls[i].velX < 0 + pR ||
balls[i].x + balls[i].velX > 1024 - pR)
{
balls[i].angle = -balls[i].angle + 180;
updateballVelocities(balls[i]);
}
balls[i].x += balls[i].velX;
balls[i].y += balls[i].velY;
}
}
機能updateballVelocities
{
var radians:Number = deg2rad(b.angle);
b.velX = Math.cos(b.angle) * b.speed;
b.velY = Math.sin(b.angle) * b.speed;
}
機能addBall
public function addBall():void
{
ball = new Ball();
ball.x = Math.random() * (1024 - pD) + pR;
ball.y = Math.random() * (600 - pD) + pR;
ball.speed = 12;
ball.angle = Math.random() * 360;
updateballVelocities(ball);
addChild(ball);
balls[numofBalls] = ball;
numofBalls++;
}
機能removeballあたり30のフレームで
個の public function removeBall():void
{
ball = balls[numofBalls];
numofBalls--;
removeChild(ball);
balls.pop();
move();
}
変数
private var ball:Ball = new Ball();
private var pD:Number = ball.width;
private var pR:Number = ball.width/2;
private var balls:Array = new Array();
private var numofBalls:int = 0;
また、別の小さな質問...ボールを取り除く...最初のクリックで として、すべてがフリーズします。 2回目のクリックで、解凍され、ボールが取り除かれます。
ありがとうございます。コンテナ配列を作成したときにそれを変更するのを忘れました。 同様のインデックス作成の問題も、フリーズの問題でした。私はあなたの助けに感謝します。 – nameistaken1