2012-06-13 44 views
1

我需要使用onAreaTouched方法上的按鈕進行水龍頭打開新的場景,對於男,這裏是我的一段代碼:Andengine的TouchEvent打開新的場景

PlayBtn = new Sprite(200,35, 200,150,this.playTextureRegion){ 

     @Override 
     public boolean onAreaTouched(final TouchEvent mmSceneTouchEvent, final float mmTouchAreaLocalX, final float mmTouchAreaLocalY){ 

      switch(mmSceneTouchEvent.getAction()) { 

       case TouchEvent.ACTION_DOWN: 
        playBtn = true; 
        this.mEngine.setScene(gamePlay()); 
        break; 
       case TouchEvent.ACTION_MOVE: 
        break; 
       case TouchEvent.ACTION_UP: 
        playBtn = false;         
        this.mEngine.setScene(gamePlay());     
        break; 

      }    

      return true; 

     }   

    }; 

但這裏this.mEngine.setScene(gamePlay());行不採取編譯器,它顯示錯誤爲紅色標記。 所以任何想法可以幫助我很多。 謝謝。

+0

當你在它懸停它給你一個提示彈出與錯誤是什麼?你在哪裏宣佈mEngine?我對andengine並不熟悉,但是如果你在此附加一些代碼,我可能會提供幫助。我懷疑你使用的「這個」是Sprite對象,而你的mEngine引用實際上是你在更高的上下文中創建的東西。 – FoamyGuy

+0

是啊什麼蒂姆說 - 可能會幫助我們看到什麼gamePlay()做的 - 具體來說,如果它不返回一個「場景」 – jmroyalty

+0

不,我沒有這樣的東西......我嘗試了吐司消息看到按鈕的響應與否,工作以及通過簡單地將我的遊戲場景調用爲gamePlay()而不是「this.mEngine.setScene(gamePlay());」來嘗試但沒有運氣... –

回答

0

你似乎調用了一個名爲「遊戲()」方法。相反,你需要調用場景。 因此,你所做的是在你的gamePlay()方法中,你聲明一個新的Scene,然後調用它。下面的例子。

// Your Method called gamePlay() 
public void gamePlay(){ 

myNewScene = new Scene(); 

// Set up your scene here. Background, Sprites, Text etc. 

} 

//改變場景在這裏myNewScene上按下playBtn

playBtn = new Sprite(200,35, 200,150,this.playTextureRegion){ 

     @Override 
     public boolean onAreaTouched(final TouchEvent mmSceneTouchEvent, final float mmTouchAreaLocalX, final float mmTouchAreaLocalY){ 

      switch(mmSceneTouchEvent.getAction()) { 

       case TouchEvent.ACTION_DOWN: 
        playBtn = true; 
        this.mEngine.setScene(myNewScene); 
        break; 
       case TouchEvent.ACTION_MOVE: 
        break; 
       case TouchEvent.ACTION_UP: 
        playBtn = false;         
        this.mEngine.setScene(myNewScene);     
        break; 

      }    

      return true; 

     }   

    };