K、私は解決策を見つけます。ただし、まだ衝突検出に取り組む必要があります。最大ではありません。ボールがパドルに引っかかることがある。フラッシュ オブジェクト ヒット テストを使用しています。とにかく。これは、私がやりたいことを実現するために使用したコードです。進むべき方向をサポートしているように見えますが、そうでない場合もあります。
それは機能しますが、問題は速度をマイナスに落とすことで、時々方向がずれることがあります。ボールが動く方向は、-1 または 1 によって決定されるためです。数値が想定とは逆になる可能性があります。
以下はパドルクラスです
public var cspeed:Number;
private var timer:Timer;
public var vx:Number = 0;
public var vy:Number = 0;
private var prevx:Number = 0;
private var prevy:Number = 0;
public function Paddle():void
{
timer = new Timer(60);
timer.start();
timer.addEventListener(TimerEvent.TIMER,checkSpeed);
}
private function checkSpeed(e:TimerEvent):void
{
if(prevx == 0)
{
prevx = x;
}
else
{
cspeed = x - prevx;
prevx = 0;
}
}
ボール クラス内での衝突をチェックします。それはすべてを打つものだからです。以下はコードです
以下は私のボールクラスです。チェック ウォール クラスでは、壁またはパドルに当たるかどうかをチェックします。パドルの参照を ball クラスに渡しました。
private function checkWalls():void
{
if(y > sRef.stageHeight || y < 0)
{
yDir = yDir * -1;
}
else if ( x > sRef.stageWidth || x < 0)
{
xDir = xDir * -1;
}
//trace(dist);
/*var dx:Number = paddle.x - x;
var dy:Number = paddle.y - y;
var dist:Number = Math.sqrt(dx * dx + dy * dy);*/
if(hitTestObject(paddle))
{
xspeed = (paddle.cspeed/100) + xspeed;
yDir = yDir * -1;
}
//trace(paddle.cspeed);
}
private function moveBall():void
{
x += xspeed * xDir;
y += yspeed * yDir;
}
私はまだたくさんのトゥインクが必要です。しかし、私がそれに取り組むならば。私はそれを私がやりたいことをさせることができると思います。