App Inventor编程开发集锦是App Inventor编程教程的延伸,通过PBL项目制的实战案例,讲解App ...

App Inventor编程开发集锦-目录

第4课 编写程序——控制游戏时长

我们用计时器组件来控制游戏时长,用数字滑动条组件来显示游戏的剩余时间,组件属性的具体设置参见表1- 2。

1、控制游戏时长

我们用游戏计时器来实现控制游戏时长的功能。游戏计时器的计时间隔为1秒钟(1000毫秒),即每隔1秒钟会触发一次计时事件,如果我们希望游戏时长为60秒,那么当计时次数达到60次时,游戏结束。为了便于计算成绩,我们利用剩余时间来判断游戏是否结束。声明一个全局变量剩余时间,在每次计时事件中让它的值减1,当剩余时间等于0时,游戏结束,游戏计时器停止计时。具体代码如图1- 34所示。

图1- 34 控制游戏时长

2、显示剩余时间

通过设置数字滑动条组件的滑块位置,可以表示游戏的剩余时间。需要说明一点,滑动条的宽度属性只代表它的几何尺寸,而滑块的位置属性仅仅与最大值、最小值以及当前值有关,与滑动条的宽度无关。例如,如果滑动条宽度为120像素,则没过1秒钟滑块向左移动2个像素,是滑动条宽度的1/60;如果滑动条为180像素,则每个1秒滑块向左移动3个像素,也是宽度的1/60。因此只要在游戏计时器的计时事件中,让滑块位置=剩余时间即可,代码如图1- 35所示。

图1- 35 滑块的左侧表示游戏剩余时间
如果此时我们测试程序,滑块不会有任何变化,因为游戏计时器还没有启动,我们需要在屏幕初始化程序中,设置游戏计时器的启用属性为真,如图1- 36所示。

图1- 36 启动游戏计时器
测试发现,当所有卡片都被翻开,屏幕标题显示“游戏结束”时,滑块仍然在滑动,我们需要在合适的位置添加代码,让游戏计时器停止计时。我们在屏幕初始化程序中启动计时器,还需要在适当的时间让它停止计时。有两种情况需要停止计时:①当剩余时间=0时;②当翻牌对数=8时。前者我们已经做到了(如图1- 32),现在需要对后者进行处理,在处理点击事件过程中,当翻牌对数=8时,让游戏计时器停止计时,具体代码如图1- 37所示。

图1- 37 当所有卡片都被翻开时,让游戏计时器停止计时

3、将剩余时间计入总成绩

为了鼓励玩家在更短的时间内翻开所有卡片,我们将剩余时间的10倍作为奖励,添加到游戏的最后得分中,这样,每次的游戏得分将有所不同,增加了游戏的趣味性。代码如图1- 38所示。

图1- 38 将剩余时间作为奖励计入总分