1、16 滚屏游戏滚屏游戏 程序设计基础 2 home back first prev next last 本节目标本节目标 滚屏游戏滚屏游戏 分类和鉴赏分类和鉴赏 实现原理实现原理 动态障碍物实现动态障碍物实现 3 home back first prev next last 滚屏游戏滚屏游戏 2-1 滚屏游戏是二维平面游戏的一个类型滚屏游戏是二维平面游戏的一个类型 是非常常见的一类游戏,在电脑桌面游戏、是非常常见的一类游戏,在电脑桌面游戏、 Flash小游戏、手机游戏中非常常见小游戏、手机游戏中非常常见 常见的冒险类、射击类小游戏大都属于这一常见的冒险类、射击类小游戏大都属于这一 类类 滚屏按
2、照方向,可分为水平滚屏和垂直滚屏滚屏按照方向,可分为水平滚屏和垂直滚屏 4 home back first prev next last 滚屏游戏滚屏游戏 2-2 特点是:特点是: 为了保持人物在屏幕中始终处于中心位置,一为了保持人物在屏幕中始终处于中心位置,一 般不移动人物,而是往相反的方向移动背景,般不移动人物,而是往相反的方向移动背景, 这样利用人物和背景的相对运动,产生动画的这样利用人物和背景的相对运动,产生动画的 效果效果 5 home back first prev next last ScrollingDemo 分析分析 8-1 该游戏只是实现了人物的运动该游戏只是实现了人物的运
3、动 控制和背景移动。没有设置危控制和背景移动。没有设置危 险物、奖品等,如果感兴趣,险物、奖品等,如果感兴趣, 你可以尝试自己添加。完整游你可以尝试自己添加。完整游 戏的案例,以及障碍物的添加,戏的案例,以及障碍物的添加, 可参考可参考 Cube Scroller.sb。 该游戏的舞台是蓝天白云的一该游戏的舞台是蓝天白云的一 张图片,没有代码,因此是静张图片,没有代码,因此是静 态不动的。态不动的。 该游戏有该游戏有5个角色,个角色,player 代代 表人物,表人物,terrain0-terrain3代代 表四个屏幕的背景,当人物自表四个屏幕的背景,当人物自 左向右运动时,四个屏幕的背左向右
4、运动时,四个屏幕的背 景依次显示出来。景依次显示出来。 6 home back first prev next last ScrollingDemo 分析分析 8-2 player角色的代码角色的代码 第一个脚本将程序唯一的变量第一个脚本将程序唯一的变量scrollX初始化为初始化为0。 scrollX表示人物在水平方向移动的距离。表示人物在水平方向移动的距离。 起点处,起点处,scrollX为为0;从起点向右,变为负数,;从起点向右,变为负数, 绝对值不断增加;从起点向左,变为正数,绝绝对值不断增加;从起点向左,变为正数,绝 对值不断增加。对值不断增加。 7 home back first
5、prev next last ScrollingDemo 分析分析 8-3 第二个脚本检测左移键按下则第二个脚本检测左移键按下则scrollX加加5, 控制人物左移;控制人物左移; 第三个脚本检测右移键按下则第三个脚本检测右移键按下则scrollX减减5, 控制人物右移;控制人物右移; 8 home back first prev next last ScrollingDemo 分析分析 8-4 第四个脚本检测上移键按下,实现人物重复第四个脚本检测上移键按下,实现人物重复 上移上移10步步20次,模拟人物跳起的效果。次,模拟人物跳起的效果。 9 home back first prev nex
6、t last ScrollingDemo 分析分析 8-5 第五个脚本检测人物是否在地面上(碰到绿第五个脚本检测人物是否在地面上(碰到绿 色),如果不在地面上,重复下降色),如果不在地面上,重复下降5步,如步,如 果碰到地面,上移果碰到地面,上移5步,模拟人物降落到地步,模拟人物降落到地 面并稍稍弹起的效果。面并稍稍弹起的效果。 10 home back first prev next last ScrollingDemo 分析分析 8-6 角色角色terrain0的脚本,作用是将角色的脚本,作用是将角色terrain0设设 置为第一屏的背景。置为第一屏的背景。 11 home back fi
7、rst prev next last ScrollingDemo 分析分析 8-7 角色角色terrain1的脚本,作用是将角色的脚本,作用是将角色terrain1设置为设置为 第二屏的背景。第二屏的背景。 Terrain2、terrain3角色代码和这个类似,唯一的区角色代码和这个类似,唯一的区 别是别是480后面所乘的数字。因为屏幕宽为后面所乘的数字。因为屏幕宽为480像素,像素, 所以将角色设置为间隔所以将角色设置为间隔480整数倍的位置,就相当整数倍的位置,就相当 于将角色自左向右连成一长串,从而拼接成一个于将角色自左向右连成一长串,从而拼接成一个 长条的屏幕。长条的屏幕。 12 ho
8、me back first prev next last ScrollingDemo 分析分析 8-8 随着随着scrollX不断变化,比如绝对值增加的负数,不断变化,比如绝对值增加的负数, 角色角色terrain0- terrain3的的x坐标减小相同的数值,实坐标减小相同的数值,实 现向左移动相同的步数。角色现向左移动相同的步数。角色terrain0- terrain3向左向左 移动移动5步,模拟的就是屏幕向左移动步,模拟的就是屏幕向左移动5步,看起来步,看起来 就像人物向右移动了就像人物向右移动了5步。步。 13 home back first prev next last Cube S
9、croller 赏鉴赏鉴 3-1 该游戏通过方向键控制红色方块向前滚动该游戏通过方向键控制红色方块向前滚动 红色代表危险的障碍,红色方块碰到红色就会回红色代表危险的障碍,红色方块碰到红色就会回 到起点到起点 角色角色 Sprite8 是一个典型的障碍,如右图所示,直是一个典型的障碍,如右图所示,直 接双击执行第二个脚本,观察上方角色的示意图,接双击执行第二个脚本,观察上方角色的示意图, 红色线段在显示、隐藏和左右移动红色线段在显示、隐藏和左右移动 14 home back first prev next last Cube Scroller 赏鉴赏鉴 3-2 从第一个脚本可知,该障碍应在第从第
10、一个脚本可知,该障碍应在第8屏出现屏出现 在(在(221,-1这个位置)这个位置) 第二个脚本通过切换造型实现动画效果第二个脚本通过切换造型实现动画效果 15 home back first prev next last Cube Scroller 赏鉴赏鉴 3-3 角色有三个造型,如右图所示角色有三个造型,如右图所示 造型造型1,红色隐藏,红色隐藏 造型造型2,红色在左,红色在左 造型造型3,红色在右,红色在右 16 home back first prev next last 总结总结 滚屏游戏滚屏游戏 分类和鉴赏分类和鉴赏 实现原理实现原理 动态障碍物实现动态障碍物实现 作业作业 自己设计一滚屏类游戏自己设计一滚屏类游戏