《第一行Android代码》课件:第5章 游戏开发实战演练_第1页
《第一行Android代码》课件:第5章 游戏开发实战演练_第2页
《第一行Android代码》课件:第5章 游戏开发实战演练_第3页
《第一行Android代码》课件:第5章 游戏开发实战演练_第4页
《第一行Android代码》课件:第5章 游戏开发实战演练_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 游戏开发实战演练 数字媒体技术系 内容 o 项目准备工作 o 划分游戏状态 o 游戏初始化 o 游戏界面 o 游戏胜利与结束界面 o 游戏细节处理 5.1 项目前的准备工作 o 图片资源 5.2 划分游戏状态 游戏状态 游戏菜单(开始菜单) 游戏中 游戏胜利游戏失败 游戏暂停 游戏主要的类结构 o Player、Enemy和Boss都发射各自类型的子弹 o PlayerBullet击中Enemy产生普通Boom o PlayerBullet击中Boss产生Boss Boom 游戏主体代码框架 o myDraw、logic、OnTouchEvent、 5.3游戏初始化-菜单界面GameM

2、enu o 实现开始界面 o 开始游戏的按钮 o 开始游戏按钮事件监听 开始菜单GameMenu 触屏事件处理 MySurface处理 o myDraw o OnTouchEvent 5.4 游戏界面GAMING状态 o myDraw绘制游戏画面 o 绘制背景GameBg o 绘制Player o 有条件绘制敌人们Enemy o 有条件绘制Boss o Player子弹绘制 o 有条件Enemy子弹绘制 o 有条件Boss子弹绘制 o Boom爆炸效果绘制 绘制代码 OnTouchEvent o 书上是onKeyDown,需要更改为onTouchEvent o 需要增加游戏的GUI来操控游戏

3、o 在MySurfaceView中增加绘制GUI部分,如果这里只有对 Player的操作,可以在Player中增加GUI。 o 也可MySurfaceVIew中绘制GUI响应onTouchEvent 游戏背景 GameBg o 游戏背景使用两张图片的滚动实现,错拼方式 背景的logic o 滚动图片 游戏主角Player的实现 o draw: n 绘制Player对象 n 绘制Player的血量HP图 o onTouchEvent: n 对Player的其他触屏操作, 如旋转,平移,倾斜等。这 里未实现 o 血量HP的set和get方法 o Player的游戏逻辑logic: n 移动 n 碰

4、撞 o 与敌机碰撞 o 与敌人子弹碰撞 n 其他 Player的绘制代码 o 绘制Player o 绘制血量 o draw方法 Player logic MySurfaceView的player draw logic处理 PlayerGUI o draw o 主要处理GUI图标的绘制,含发射功能的图标 o logic o 这里没有logic操作 o onTouchEvent o 处理触屏事件, o 返回结果可以用isLeft等判断 o 也可以使用operationResult判定 PlayerGUI o 这里定义了GUI的图片和位置 o 定义了操作结果operationResult o 0 x

5、1,0 x10,0 x100,0 x1000,0 x10000 o 代表左右上下,shoot,注意这里是十六进制 o 也可以使用isLeft等传统方式 PlayerGUI o 构造函数进行初始化 PlayerGUI o draw方法 PlayerGUI MySurfaceView中操作 o initGame o myDraw o onTouchEvent Player的logic处理 5.4.3 怪物敌机的实现Enemy o draw o 绘制敌人,苍蝇,鸭子,猪 o logic o 处理敌人的移动 o 动画帧控制 o 发射子弹,碰撞 构造函数初始化 Enemy Logic逻辑处理 MySur

6、faceView处理 o 由于存在多个Enemy,故定义一个向量来存放 n Vector vcEnemy; o vcEnemy.addElement() o vcEnemy.removeElementAt(i) o Enemy的数量和类型存在二维数组中 n enemyArray (敌人类型,数量) o draw, logic处理 o vcEnemy(i).draw vcEnemy(i).logic SurfaceView变量定义 MySurface处理 o initGame o myDraw o logic MySurface处理logic Player与Enemy的碰撞 MySurfaceV

7、iew 的logic处理敌我碰撞 Player碰撞持续的处理-无敌 Player的logic处理 Player的draw方法,实现碰撞闪烁 Bullet类 o Player发射子弹 o Enemy发射子弹,注意区分不同类型的Enemy o 构造函数初始化 o draw绘制 o logic子弹的移动 o 其他 Bullet MySurfaceView处理Bullet相关的draw,logic o initGame p myDraw MySurfaceView的logic处理增加子弹 o 增加主角与敌人的子弹 敌人子弹的逻辑 o 如果子弹越界就dead,销毁,否则执行每个子弹的logic Play

8、er Bullet逻辑处理 o 增加player的子弹,使用定时2s或者是按键发射 o 如果越界死亡,则回收,否则,执行每个子弹逻辑 子弹碰撞处理 o 主角与敌人子弹的碰撞 n Player中增加碰撞判断方法 o 敌人与主角子弹的碰撞 n Enemy中增加碰撞判断方法 爆炸类Boom 怪物Boss 5.5游戏胜利与结束界面 p myDraw方法中绘制界面图片即可 5.6 游戏细节处理 o 按键返回处理 总结 o 游戏的框架 o 游戏中的代码处理 n draw, logic, onTouchEvent处理 o 本案例的优缺点: o 优点是代码紧凑,简单,容易边学边做 o 缺点是代码的结构不是很清晰,可优化代码结构,比如: o 代码使用MVC的框架等 o 设置辅助类Helper,设定屏幕的大小,载

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论