Và bây giờ phát sinh câu hỏi, làm như thế nào để quản lý tốt Scenes? Tốt nhất là các bạn nên tạo Enum với các kiểu Scenes.
Ví dụ bạn cần 4 cảnh:
- Splash Screen (Shown while loading resource)
- Menu Scene (Xuất hiện sau khi load resource)
- Option Scene
- Game Scene
- public enum SceneType
- {
- SPLASH,
- MENU,
- OPTIONS,
- GAME,
- }
- public SceneType currentScene = SceneType.SPLASH;
Và sau đó trong khi lựa chọn các Scenes khác nhau, luôn luôn nhớ rằng để thay đổi kiểu Enum của Scene. vì vậy chúng ta theo dõi kiểu nào Scene hiện thời được biểu diễn, Ví dụ sau sẽ lựa chọn từ Splash Screen tới Menu Screen.
mEngine.setScene(menuScene);
currentScene = SceneType.MENU;
Chúng ta có thể viết đè onKeyDown để dễ dàng điều khiển lựa chọn các Scenes trong khi phím Back được nhấn:
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event)
- {
- if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() ==KeyEvent.ACTION_DOWN)
- {
- switch (currentScene)
- {
- case SPLASH:
break;
- case MENU:
- System.exit(0);
- break;
- case OPTIONS:
- mEngine.setScene(menuScene);
- currentScene = SceneType.MENU;
- break;
- case GAME:
- mEngine.setScene(gameScene);
- currentScene = SceneType.MENU;
- break;
- }
- }
- return false;
- }
Đoạn code trên thực hiện những gì? nó kiểm tra nut Back được nhấn, và lựa chọn giữa các Scenes (Phụ thuộc trên những cảnh hiện thời) và trong trường hợp này:
- Trong khi game đang loading (Splash Screen) thì không thực hiện sự kiện gì cả
- Khi ở trong Menu Scenes, chúng ta đơn giản thoát từ game
- Khi nó ở trong lựa chọn Options Scene, chúng ta lựa chọn trở lại tới Menu Scene
- khi nó ở trong Game Scenes. giống như ở trên.
Với cách này chúng ta dễ dàng theo dõi các Scenes. và lựa chọn chúng cho activity cuối cung.
Không có nhận xét nào:
Đăng nhận xét