Andengine TouchEvent打开新场景

时间:2012-06-13 13:01:42

标签: android andengine

我需要在按钮上打开新的场景,使用onAreaTouched方法,这是我的代码:

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());行没有被编译器占用,它显示错误为红色标记。 所以任何想法都可以帮助我很多。 感谢。

2 个答案:

答案 0 :(得分:0)

我认为此链接可为您提供有关如何在单个活动中管理场景的更多指导。 https://sites.google.com/site/matimdevelopment/creating-and-managing-scenes

答案 1 :(得分:0)

您似乎在调用一个名为“gamePlay()”的方法。相反,你需要调用一个场景。 所以,你所做的是在你的gamePlay()方法中,你声明一个新的场景,然后调用它。示例如下。

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

myNewScene = new Scene();

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

}

//按下playBtn

将场景更改为myNewScene
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;

         }           

     };