加速度计 - 球走出舞台。 Flash AS3

时间:2011-05-15 18:16:03

标签: flash actionscript-3 actionscript accelerometer

我在使用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; 
    }
}

1 个答案:

答案 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