2012-04-28 87 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行錯誤(類型錯誤:錯誤#1009:無法訪問的屬性或方法一個空對象引用。 at ballApp_Scene1_fla :: MainTimeline/moveBall()[ballApp_Scene1_fla.MainTimeline :: frame1:32)爲什麼?我怎樣才能解決這個問題?

+0

是cBall空?我沒有看到你在哪裏聲明或在任何地方初始化它... – 2012-04-28 20:38:02

回答

0

由於cball是moveBall函數中唯一使用的對象,因此空指針異常意味着cBall尚未初始化。由於沒有顯示這部分沒有大的幫助可能..

但也許看看碰撞檢測和

另一個試圖做類似的東西: BitmapData Collision