我在使用Flash AS3中的加速度计时遇到问题。脚本工作正常但是球只在屏幕左侧和底部离开,我希望它包含在舞台中。
我做错了什么?这是我的剧本:
import flash.sensors.Accelerometer;
import flash.events.AccelerometerEvent;
var my_acc:Accelerometer = new Accelerometer();
my_acc.setRequestedUpdateInterval(50);
my_acc.addEventListener(AccelerometerEvent.UPDATE, onAccUpdate);
function onAccUpdate(e:AccelerometerEvent):void{
ball.x -= (e.accelerationX*30);
ball.y += (e.accelerationY*30);
if (ball.x < 0) {
ball.x = 0;
} else if (ball.x > stage.stageWidth) {
ball.x = stage.stageWidth;
}
if (ball.y < 0) {
ball.y = 0;
} else if (ball.y > stage.stageHeight) {
ball.y = stage.stageHeight;
}
}
答案 0 :(得分:0)
问题是因为 你是通过accX * 30减少x值,这意味着如果你将球x值变为零,即如果&lt; 0条件满足,则它再次在阶段之后小于零。< br>在&gt; stagewidth条件下,球越来越远离舞台边界。
*与y值相同。
将.x&lt; 0条件值设置为30或ball.width而不是0 和.y&gt; stagewidth值到stagewidth-30或stagewidth-ball.width