0

Acceleropmeter(スマートフォン用)でボールをコントロールできる学校向けの小さなアプリを作っています。ボールが特定の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:エラー#1009:nullオブジェクト参照のプロパティまたはメソッドにアクセスできません。ballApp_Scene1_fla:: MainTimeline / moveBall()[ballApp_Scene1_fla.MainTimeline :: frame1:32)なぜですか?どうすればこれを修正できますか?

4

1 に答える 1

0

cballはmoveBall関数で使用される唯一のオブジェクトであるため、nullポインター例外は、cBallがまだ初期化されていないことを意味します。この部分は示されていないので、大きな助けはありません。

しかし、おそらく衝突検出と

同様のことをしようとしている別の人: BitmapData Collision

于 2012-04-28T21:53:22.657 に答える