Загрузка следующего уровня нажатием кнопки - PullRequest
0 голосов
/ 08 марта 2012

Я использую AndEngine.

У меня есть сцена, которую я хотел бы использовать для всех своих уровней.

Единственное, что изменится, это объекты, загруженные на сцену с помощью метода, который я создал для загрузки уровня.

Проблема, с которой я сталкиваюсь, заключается в том, что в конце уровня пользователь получает возможность перейти на следующий уровень. Я разрешаю пользователю загружать следующий уровень этим методом.

this.nextlevel = new Sprite(0,0,150,80,this.nextLevelRegion,this.getVertexBufferObjectManager()){
         public boolean onAreaTouched(final TouchEvent pSceneTouchEvent,
                final float pTouchAreaLocalX,
                final float pTouchAreaLoca) {

            GameScene.detachChildren();

            loadLevel(level);
            return true;
        }
};

LoadLevel (int level_number) принимает значение int в качестве параметра. Я увеличиваю эту переменную на уровне ++; после загрузки текущего уровня.

Проблема в том, что при нажатии на спрайт он продолжает прибавлять +1 к целому числу уровня и пытается загрузить неправильный уровень.

Кто-нибудь знает лучший способ сделать это?

1 Ответ

1 голос
/ 08 марта 2012

это то, что я делал в своей игре: я создал класс, который создает игровую сцену, у этого класса есть метод, который создает сцену и загружает уровень XML на основе числа, которое он получает, когда я его вызываю.когда я хочу перейти на следующий уровень, я получаю номер текущего уровня (скажем, его x) и вызываю метод с x + 1 в качестве атрибута для него.Вы должны заметить, что в этом методе я полагаюсь на воссоздание сцены снова и снова, поэтому вы должны сбросить все, когда вы это делаете.это вызов метода:

 Sprite Next=new Sprite(x-48/factor, y+30/factor, 96/factor, 60/factor,LoadAssets.WinMenuNextTextureRegion){
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
if(pSceneTouchEvent.isActionUp()){
pEngine.setScene(GamePlayScene.CreateTheGamePlayScene(context,pEngine,camera_width, camera_height,GamePlayScene.LevelNumber+1));
}
return true;
}};

и вот ссылка на мою игру, если вы хотите посмотреть, как это работает: https://market.android.com/details?id=com.ayham.blowangryshapes у меня только одна игровая сцена в игреи уровни загружаются по мере необходимости.

...