上一节我们实现了小老鼠的方向与出现的位置,这一节我们利用小老鼠来完成一个简单的守塔游戏。敌人的角色已经有了,既然是守塔,还需要给防守的一方准备一个趁手的武器,还记得前面我们尝试过的炸弹爆炸的示例吗?我们就让炸弹来客串一下,虽然用炸弹对付小老鼠有点大材小用哈。炸弹的角色是我们自定义的,因为导入过程比较繁琐,这里提供了示例供读者下载。
守塔游戏示例 提取码: emqk
之前我们学习的编程都只是针对一个角色,运行程序时,只要单击一下组合好的积木块,就可以直接运行了。这个案例中出现了两个角色,这就意味着,当我们点击运行小老鼠的动作之后,还需要去点击一下炸弹的程序块,才能让两个角色一起工作。运行一个程序还得挨个去唤醒每个角色,显然是不合理的。对于希望在程序开始后就产生效果的角色,我们可以给它们加上一块“当绿旗被点击”的积木块。
这样一来,我们只需要点击一下显示区域上方的绿色旗帜,就能唤醒所有的角色了,事实上,点击绿旗来开始一段Scratch程序才是正确的操作方法。直接点击积木运行程序的方法适合用于调试程序,当程序设计完成,准备发布给其他用户使用时,我们需要加上“当绿旗被点击”这块积木。
如果已经下载好了示例,可以尝试点击一下程序中的绿旗,小老鼠会挨个出现在屏幕边缘,一边摇尾巴一边向屏幕中心移动。将鼠标移动到小老鼠附近,按下空格,当炸弹爆炸后,爆炸范围内的小老鼠会被炸飞。
小老鼠和炸弹是两个不同的角色,两者本身是不相关的,为什么炸弹能够炸飞小老鼠呢?因为在小老鼠的克隆体完成定位与转向之后,我们使用了一块重复执行的积木,让小老鼠一边前进,一边检测自己有没有碰到黄色、红色以及橙色的色块,这三种颜色只有炸弹爆炸时才会显示在屏幕上,一旦检测到碰撞,就删除自身。为了更为直观,在删除自己之前我们又添加了一段动画效果,让小老鼠被炸到了变大了一些,因为程序是顺序运行的,执行完变大的操作后,程序才会接着执行其后的删除动作。