私は回転する方向に動かさなければならない「車」を持っています。 今、それはちょうど方向に回転し、上下に移動し続けます。私を助けてください。 私はadobe flash pro cs6とactionscript3を使用しています。 私のコードは次のとおりです。フラッシュで回転方向にオブジェクトを移動する方法は?
var upPressed:Boolean = false;
var downPressed:Boolean = false;
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;
car.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed);
function fl_MoveInDirectionOfKey(event:Event)
{
if (upPressed)
{
car.y += 5;
}
if (downPressed)
{
car.y -= 5;
}
if (rightPressed)
{
car.rotation += 5;
}
if (leftPressed)
{
car.rotation -= 5;
}
}
function fl_SetKeyPressed(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.UP:
{
upPressed = true;
break;
}
case Keyboard.DOWN:
{
downPressed = true;
break;
}
case Keyboard.LEFT:
{
leftPressed = true;
break;
}
case Keyboard.RIGHT:
{
rightPressed = true;
break;
}
}
}
function fl_UnsetKeyPressed(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.UP:
{
upPressed = false;
break;
}
case Keyboard.DOWN:
{
downPressed = false;
break;
}
case Keyboard.LEFT:
{
leftPressed = false;
break;
}
case Keyboard.RIGHT:
{
rightPressed = false;
break;
}
}
}
あなたの機能** fl_MoveInDirectionOfKey **はあなたの車をxとyの絶対値で動かします。回転や相対移動の余地はありません。あなたはあなたの車に、その位置のベクトル変数とその方向のベクトル変数を追加する必要があります。次に、ベクトル演算を読み込み、ベクトルを回転して平行移動する方法を説明します。最後に、回転を最初に適用します(次に、otが自軸の周りをローカルに回転することを意味します)。次に平行移動(xとyが意図されている画面上に配置することを意味します)。 – Jankapunkt