Java游戏程序设计教程第2版教学课件作者何青第4章节游戏的运行机制1章节

上传人:w****i 文档编号:92222380 上传时间:2019-07-08 格式:PPT 页数:17 大小:141.50KB
返回 下载 相关 举报
Java游戏程序设计教程第2版教学课件作者何青第4章节游戏的运行机制1章节_第1页
第1页 / 共17页
Java游戏程序设计教程第2版教学课件作者何青第4章节游戏的运行机制1章节_第2页
第2页 / 共17页
Java游戏程序设计教程第2版教学课件作者何青第4章节游戏的运行机制1章节_第3页
第3页 / 共17页
Java游戏程序设计教程第2版教学课件作者何青第4章节游戏的运行机制1章节_第4页
第4页 / 共17页
Java游戏程序设计教程第2版教学课件作者何青第4章节游戏的运行机制1章节_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《Java游戏程序设计教程第2版教学课件作者何青第4章节游戏的运行机制1章节》由会员分享,可在线阅读,更多相关《Java游戏程序设计教程第2版教学课件作者何青第4章节游戏的运行机制1章节(17页珍藏版)》请在金锄头文库上搜索。

1、第4章 游戏的运行机制(1) 用户事件处理,内容提要,改变游戏状态 传递控制命令 实例:贪食蛇游戏,交互性游戏的根本特性让玩家掌控世界 如何交互? 命令输入方式:键盘、鼠标事件(单击,拖放等) 命令响应方式:事件处理程序更新游戏逻辑,输入命令,游戏,玩家,响应命令,1.改变游戏状态,游戏的状态转换,运行,启动,退出,暂停,设置,结束,1 如何让游戏停止? 跳出游戏循环while(true) 如何实现? a.设置一个布尔变量(running)作为游戏循环的条件,初值为true b.为程序添加键盘或鼠标事件监听 c. 添加相应的事件处理程序,如当键盘按下Esc键时将running值设置为false

2、;,2 如何让游戏暂停和恢复运行? 暂停和恢复游戏更新gameUpdate() 如何实现? a.设置一个布尔变量(isPaused)作为游戏更新的条件,初值为true b.为游戏更新设置条件 if(isPaused) gameUpdate(); c. 添加相应的事件处理程序,如当键盘按下P键时将isPaused值设置为!isPaused; (参见例4_1),2.传递控制命令,如何让玩家控制小球的运动方向? 设想:当玩家按下键盘的上下左右四键时让小球向相应的方向移动 实现:覆盖KeyPressed方法,同时在gameUpdate()中加入条件判断 (参见例4_2),3.实例:贪食蛇游戏,1.如何

3、表示贪食蛇 外观上如何表现? 一系列首尾相连的小球(用特定的颜色表示蛇头) 怎样实现蛇的移动? 在游戏的每一祯动态更新所有小球的坐标值,并进行绘制 用怎样的数据结构来存放和处理蛇的位置信息? 循环队列(数组实现) 定义两个变量head和tail,分别表示蛇头指针和蛇尾指针,用循环数组表示贪食蛇,那么,如何在游戏的每一祯中确定蛇头和蛇尾指针的数值? a.当蛇长达到最大值时(数组最大容量) 蛇头指针(head) 加一即可(对数组长度取模) 蛇尾指针(tail)永远在蛇头的前一个位置 b.当蛇长不足最大值时(难点) 蛇头指针仍然只需要加一 蛇尾指针值=(蛇头指针值+数组长度-蛇长+1)MOD 数组长

4、度 (Why?看黑板) (测试:当按下I键时蛇身加长一个单位),2 如何更新蛇的坐标? -只需要更新和保存蛇头的坐标值(why?) -当前祯的蛇头位置便是下一帧的蛇身位置 3 如何将蛇体绘制出来? a.如果tail值不等于head值,则在tail值对应的数组下标中读取坐标值,并在其位置绘制一个小球(蛇身),否则转步骤c, b.将tail值加一(需要对数组长度取模),转步骤a c. 绘制蛇头,在head值对应的数组下标中读取坐标值,并用特定的颜色来绘制一个小球(蛇头) (参见例4_3),定义snake类 将贪食蛇的属性和方法进行封装 抽象(面向对象编程思想) 主要数据成员: public int

5、 x; public int y; public int diameter; private Point body; private int head; private int tail; private int length; 主要方法: update(); /移动蛇,更新其坐标 draw(); /绘制蛇,显示其形状,添加食物,添加Food类,并定义相关方法,用于在指定的位置绘制食物方块 数据成员: public Point location; public Point size; 方法: update();/更新食物坐标 draw(); /绘制食物图形,添加蛇与食物的交互,如何在屏幕区域随

6、机添加一个食物? 借助Random对象 如何让蛇“吃”到食物? “吃的”过程:蛇头与食物重叠,食物消失,蛇身加长一个单位 如何实现? (参见例4_4),类关系图,总结,1 通过对键盘和鼠标事件处理,我们可以: 转换游戏状态; 传递控制命令; 2 贪食蛇游戏设计要点: 蛇体的表示:循环队列 蛇体的运动:保存蛇头的坐标值,并动态调整蛇头及蛇尾指针 蛇与食物的交互:碰撞检测(下一讲内容),继续改进,1.当窗口最小化或被遮挡时暂停游戏 2.添加游戏结束规则,并能重新开始游戏 3.能够添加多个食物,如当按下某个键后随机添加一个新食物(原来的食物不消失) 4.改变蛇的运动速度,按+号键加速,按-号键减速 5.手动控制蛇的移动,按下方向键时让蛇朝对应的方向移动,否则静止不动 6.自由发挥,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号