读 Beginning Android Games 2nd Edition (十五) 游戏主菜单
来源:互联网 发布:边际效应递减规律知乎 编辑:程序博客网 时间:2024/06/06 07:14
如上图,主菜单的选项有各自的坐标数,点击在固定的范围内才能触发相应事件
package com.badlogic.androidgames.mrnom;import java.util.List;import com.badlogic.androidgames.framework.Game;import com.badlogic.androidgames.framework.Graphics;import com.badlogic.androidgames.framework.Input.TouchEvent;import com.badlogic.androidgames.framework.Screen;public class MainMenuScreen extends Screen { public MainMenuScreen(Game game) { super(game); } public void update(float deltaTime) { Graphics g = game.getGraphics(); List<TouchEvent> touchEvents = game.getInput().getTouchEvents(); game.getInput().getKeyEvents(); int len = touchEvents.size(); for(int i = 0; i < len; i++) { TouchEvent event = touchEvents.get(i); if(event.type == TouchEvent.TOUCH_UP) { if(inBounds(event, 0, g.getHeight() - 64, 64, 64)) { Settings.soundEnabled = !Settings.soundEnabled; if(Settings.soundEnabled) Assets.click.play(1); } if(inBounds(event, 64, 220, 192, 42) ) { game.setScreen(new GameScreen(game)); if(Settings.soundEnabled) Assets.click.play(1); return; } if(inBounds(event, 64, 220 + 42, 192, 42) ) { game.setScreen(new HighscoreScreen(game)); if(Settings.soundEnabled) Assets.click.play(1); return; } if(inBounds(event, 64, 220 + 84, 192, 42) ) { game.setScreen(new HelpScreen(game)); if(Settings.soundEnabled) Assets.click.play(1); return; } } } } private boolean inBounds(TouchEvent event, int x, int y, int width, int height) { if(event.x > x && event.x < x + width - 1 && event.y > y && event.y < y + height - 1) return true; else return false; } public void present(float deltaTime) { Graphics g = game.getGraphics(); g.drawPixmap(Assets.background, 0, 0); g.drawPixmap(Assets.logo, 32, 20); g.drawPixmap(Assets.mainMenu, 64, 220); if(Settings.soundEnabled) g.drawPixmap(Assets.buttons, 0, 416, 0, 0, 64, 64); else g.drawPixmap(Assets.buttons, 0, 416, 64, 0, 64, 64); } public void pause() { Settings.save(game.getFileIO()); } public void resume() { } public void dispose() { }}present 方法是在界面中画出背景图,游戏logo,游戏主菜单选项(实际上是一整张图片,不同选项),选择静音的按钮
inBounds方法限定触摸屏幕时,事件触发的区域
if(Settings.soundEnabled) Assets.click.play(1);上面的代码就是点击菜单以后,如果没有静音,那么播放点击时的音效
总的来说,还是很好理解的
- 读 Beginning Android Games 2nd Edition (十五) 游戏主菜单
- 读 Beginning Android Games 2nd Edition (十六) 游戏帮助
- 读 Beginning Android Games 2nd Edition (十一) 加入游戏暂停/恢复功能
- 读 Beginning Android Games 2nd Edition (十三) "Nom先生"游戏设计
- 读 Beginning Android Games 2nd Edition (十九) 游戏World类
- 读 Beginning Android Games 2nd Edition (二十) 游戏GameScreen类
- 读 Beginning Android Games 2nd Edition (十八) 贪食蛇类
- 读 Beginning Android Games 2nd Edition (一) 创建读取文件IO的工具类
- 读 Beginning Android Games 2nd Edition (二) 创建声音工具类
- 读 Beginning Android Games 2nd Edition (三) 创建速度感应器事件监听类
- 读 Beginning Android Games 2nd Edition (四) 创建罗盘事件监听类
- 读 Beginning Android Games 2nd Edition (五) 创建对象池类
- 读 Beginning Android Games 2nd Edition (六) 创建键盘事件处理类
- 读 Beginning Android Games 2nd Edition (七) 创建Touch事件处理类
- 读 Beginning Android Games 2nd Edition (八) 创建输入事件处理类
- 读 Beginning Android Games 2nd Edition (九) 创建像素图类
- 读 Beginning Android Games 2nd Edition (十) 创建绘图类
- 读 Beginning Android Games 2nd Edition (十二) 把框架基础功能放入Game类中
- 女王啊,你用其它女子的ID,在网上挑逗贫僧,贫僧上钩了,这说明什么?
- simple_stroul
- MFC原创教程:从不会开始(对话框2)
- [转]SUSE Linux Enterprise 10 安装 Oracle 10g (图形界面)
- string中的c_str()、data()、copy(p,n)函数的用法
- 读 Beginning Android Games 2nd Edition (十五) 游戏主菜单
- javascript中的event属性
- 使用Intent在Activity间传值 .
- diff与patch
- JRTPLIB存在问题吗?
- <script type="text/javascript">中后者是什么意思?
- pci cpu
- 企业各职位英文缩写
- C#实现Base64编码与解码