2012-04-28 2 views
0

Я делаю небольшое приложение для школы, где вы можете управлять мячом с помощью Acceleropmeter (для смартфонов), и я хочу, чтобы, если мяч достиг определенной координаты Y, вы теряете и идете на другой кадр (где говорится, что вы проиграли игру). «Ве сделал мяч и код до сих пор это:AS3 - мяч ударяется по координате Y

var fl_Accelerometer:Accelerometer = new Accelerometer(); 
fl_Accelerometer.addEventListener(AccelerometerEvent.UPDATE, fl_AccelerometerUpdateHandler); 

function fl_AccelerometerUpdateHandler(event:AccelerometerEvent):void 
{ 
cBall.x -= event.accelerationX * 40; 
cBall.y += event.accelerationY * 40; 
} 

cBall.addEventListener(Event.ENTER_FRAME, moveBall); 
function moveBall(evt:Event){ 

// this is to stop the ball when it tries to exit the sreen 

if(cBall.x > (480-cBall.width/2)){ 
    cBall.x = 480-cBall.width/2; 
} 
    // except for this, that stops the ball not if it touches the end of the screen, but if it reaches a certain Y coordinate 
if(cBall.y > (780-cBall.width/2)){ 
    gotoAndStop(3); 
} 
if(cBall.x < (0+cBall.width/2)){ 
    cBall.x = 0+cBall.width/2; 
} 
if(cBall.y < (0+cBall.width/2)){ 
    cBall.y = 0+cBall.width/2; 
} 
} 

Всякий раз, когда я пытаюсь приложение, он говорит, что есть ошибка в 32-й строке (TypeError: Error # 1009: Не удается получить доступ к свойству или методу ссылка на нулевой объект. at ballApp_Scene1_fla :: MainTimeline/moveBall() [ballApp_Scene1_fla.MainTimeline :: frame1: 32) Почему? Как я могу это исправить?

+0

является cBall нуль? Я не вижу, где вы объявляете или иналиализуете его где угодно ... –

ответ

0

Поскольку cball является единственным объектом, используемым в функции moveBall, исключение нулевого указателя означает, что cBall еще не инициализирован. Поскольку эта часть не показана не возможно большая помощь ..

Но, возможно, взглянуть на обнаружение столкновений и

другой пытается сделать аналогичные вещи: BitmapData Collision

Смежные вопросы