2012-04-28 7 views
0

Acceleropmeter(スマートフォン用)でボールをコントロールすることができる学校のための小さなアプリを作っています。ボールが特定のY座標に達すると、あなたは負けて行きます別のフレーム(あなたがゲームを失ったと言います)に移動します。 「これまでのボールとコードをやった、このです:エラー#1009:私はアプリを試すたび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にエラーがあると言うのプロパティまたはメソッドにアクセスすることはできませんnullオブジェクトリファレンス。 at ballApp_Scene1_fla :: MainTimeline/moveBall()[ballApp_Scene1_fla.MainTimeline :: frame1:32)なぜですか?どうすればこの問題を解決できますか?

+0

がcBallヌルのですか?私はどこに宣言しているのかわからない –

答えて

0

moveball関数で使用されるのはcballだけなので、nullポインタ例外はcBallがまだ初期化されていないことを意味します。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#hitTest%28%29

  • またはDisplayObject Class:この部分は...可能性は大きな助けがない

    を示していないが、ので、多分衝突検出を見て、

    同様のものをやろうとしている別の1: BitmapData Collision

  • 関連する問題