课程索引⑦——弹球游戏
第一节:认识球精灵
画布是一个运动场(或舞台),精灵是运动员(或演员);
精灵的属性:速度、方向(水平向右为0度,逆时针增加);
精灵的间隔属性:以毫秒为单位,决定运动的连贯性;
精灵在画布坐标系中的定位:x、y、z,z值大的在前面。
第二节:四处碰壁
球精灵与画布边界的碰撞:边界代码;
入射角与反射角之间的关系;
屏幕初始化时,让球沿随机方向运动,方向值从0到360;
球的反射:根据边界代码设置球的方向属性。
第三节:认识图片精灵
比较图片精灵与球精灵的属性差别:
上传素材:球及小车;
设置图片精灵的图片属性,改变图片精灵的方向等于改变图片的方向。
第四节:飞檐走壁
小车在画布坐标系中的定位:左上角为精灵的坐标基准点;
沿墙壁行走:上、下车改变x坐标,左、右车改变y坐标;
物理公式的演变:x=x0+v*t --> x=x0+v*放大倍数;
小车位置初始化:位于四壁的中点;
代码编写习惯:按照某种顺序;
画布组件的划屏事件:根据事件中携带的变量(速度x分量、速度y分量)控制小车的运动。
第五节:运动控制
方向传感器组件的角度属性:想象屏幕上水滴流淌的方向;
在方向传感器的方向改变事件中,实现小车运动控制:
角度属性对应于运动方向(速度矢量),通过求角度的正弦、余弦值得到速度的y分量及x分量。
第六节:碰撞检测
精灵组件之间的碰撞检测事件:可以检测到被碰撞的精灵;
球精灵在碰撞到不同的小车时,以不同方式改变运动方向;
精灵的碰到边界事件:小球不再运动。
第七节:统计得分
添加组件:重新开始按钮、得分标签;
全局变量——得分:累计小球与小车之间的碰撞次数。
第八节:游戏结束
数字滑动条:显示游戏的剩余时间(秒数);
计时器:在计时事件中消减游戏时间;
对话框——显示选择对话框:弹出窗口显示信息,并提供选项供用户选择;
当小球碰壁或剩余时间=0时,游戏结束——调用游戏结束过程。
第九节:历时记录
添加组件——本地数据库:
当游戏结束时,读取历史记录(如果历史记录小于本次得分,则)保存得分,弹出对话框,供用户选择;
当用户选择返回时,重新开始游戏。
第十节:周而复始
退出游戏:当用户选择“退出游戏”时,退出应用(在AI伴侣中无法测试);
清除记录:将数据库中的得分改写为0,
清除记录测试失败原因:对话框的按钮文字中多一个空格!
历史记录保存错误:由于无条件地保存得分,使得每次游戏结束时,都保存本次得分。