1

我需要在按钮点击时打开新场景,对于那个 m 使用 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());的行没有被编译器采用,它显示错误为红色标记。所以任何想法都可以帮助我很多。谢谢。

4

2 回答 2

0

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

于 2012-06-23T06:09:06.170 回答
0

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

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

myNewScene = new Scene();

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

}

// 在按下 playBtn 时将 Scene 更改为 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;

         }           

     }; 
于 2013-04-04T16:13:56.610 回答