このコードをキーボードの使用から Android デバイスの加速度計の使用に変換するのを誰かに手伝ってもらいたいです。したがって、デバイスが Y 軸に傾いている場合、アプリケーションはオブジェクトを前方に移動させるように応答する必要があり、デバイスが X 軸または -X 軸に傾いている場合、アプリケーションはオブジェクトを左または右に回転させる必要があります。
誰でも助けることができますか?
私のコード:
package com.asgamer.directionalmovement
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import com.senocular.utils.KeyObject;
import flash.ui.Keyboard;
public class Ship extends MovieClip
{
private var key:KeyObject;
private var speed:Number = 0.3;
private var rotateSpeed:Number = 5;
private var vx:Number = 0;
private var vy:Number = 0;
private var friction:Number = 0.95;
public function Ship () : void
{
key = new KeyObject(stage);
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
}
public function loop(e:Event) : void
{
if (key.isDown(Keyboard.UP))
{
vy += Math.sin(degreesToRadians(rotation)) * speed;
vx += Math.cos(degreesToRadians(rotation)) * speed;
} else {
vy *= friction;
vx *= friction;
}
if (key.isDown(Keyboard.RIGHT))
rotation += rotateSpeed;
else if (key.isDown(Keyboard.LEFT))
rotation -= rotateSpeed;
if (key.isDown(Keyboard.SPACE))
stage.addChild(new Laser(x, y, rotation));
y += vy;
x += vx;
if (x > stage.stageWidth)
x = 0;
else if (x < 0)
x = stage.stageWidth;
if (y > stage.stageHeight)
y = 0;
else if (y < 0)
y = stage.stageHeight;
}
public function degreesToRadians(degrees:Number) : Number
{
return degrees * Math.PI / 180;
}
}
}