迷路ゲームでは、キャラクターの動きに加速を加えようとしています。キャラクターは壁を通り抜けてはいけないので、移動機能とヒットテストは同じ機能になります。
この関数のifステートメントにアクセラレーションを追加しようとしましたが、正しく機能しません。誰かが加速コードをどこに置くべきか、そしてなぜそこにあるのか教えてもらえますか?
これは私がそれが行われたと思った方法ですが、機能しません:
function walkingX(anEvent: Event): void
{
var newx: Number = mc.x - (isLeft ? xspeed : 0) + (isRight ? xspeed : 0);
var newy: Number = mc.y - (isUp ? yspeed : 0) + (isDown ? yspeed : 0);
if(!boundsBmpData.hitTest(new Point(bounds.x, bounds.y),
255,
mcBmpData,
new Point(newx, newy),
255))
{
mc.x = newx;
mc.y = newy;
}
if(isDown==true && yspeed<maxspeed){yspeed+=2}
if(isUp==true && yspeed>-maxspeed){yspeed-=2}
if(yspeed>0){yspeed-=accel}
if(yspeed<0){yspeed+=accel}
if(isRight==true && xspeed<maxspeed){xspeed+=2}
if(isLeft==true && xspeed>-maxspeed){xspeed-=2}
if(xspeed>0){xspeed-=accel}
if(xspeed<0){xspeed+=accel}
}