Акселерометр - мяч уходит со сцены. Flash AS3 - PullRequest
0 голосов
/ 15 мая 2011

У меня проблема с использованием акселерометра во 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 голосов
/ 31 мая 2011

Проблема в том, что Вы уменьшаете значение x на accX * 30,
, что означает, что если вы получите значение x для шара, равное нулю, т. е. если выполняется условие <0, <br>, то оно снова выходит за пределы нулевого уровня. в состоянии> ширины сцены оно уменьшается, на которое мяч удаляется от границы сцены.

* То же самое происходит со значением у.

Установите для условия .x <0 значение 30 или ball.width вместо 0 и .y> значение stagewidth для stagewidth-30 или stagewidth-ball.width

...