做游戏学scratch少儿编程:手把手教你做迷宫游戏
大家好,我是四眼长腿奶爸,专注机器人编程(乐高EV3,Arduino)和少儿编程(Scratch,Python,Swift)!
前几篇文章讲述了scratch软件的下载安装、界面操作、指令脚本以及几个简单的小实例,相信大家对于scratch软件的基本操作和编写脚本都已经没有问题了,从本文开始,将讲述每一个游戏的设计原理以及思路分析,引导大家透过事物看本质,遇到一个问题该如何去思考、去设计、去实现。(做游戏学编程系列文章重点讲述游戏的设计原理,编写思路搞明白了,实现思路的编程方式有很多,这里用scratch完成脚本的编写,大家也可以尝试用其他的编程语言和软件)
迷宫游戏
首先,我们来看一下游戏的运行界面。
设计思路&代码编写
1、迷宫的游戏界面是一张图片,可以从网站上生成并下载到本机备用。(百度搜索maze generator)
2、导入提前下载的迷宫图片作为游戏的背景图片。
在背景页面,点击“选择”按钮,用矩形框将迷宫图片框起来,拖动矩形框移动到合适的位置。
3、点击工具栏上的“缩小”按钮,在小猫身上点击鼠标左键缩小至合适大小后,拖动小猫移动到迷宫入口的位置。
4、在角色库中选择新增一个角色(鱼),点击工具栏上的“缩小”按钮,在鱼身上点击鼠标左键缩小至合适大小,拖动鱼移动到迷宫出口的位置。
5、增加按下上下左右方向键时小猫的动作脚本,当按下方向键左键时,小猫向左移动3步,当按下方向键右键时,小猫向右移动3步,当按下方向键上键时,小猫向上移动3步,当按下方向键下键时,小猫向下移动3步。
好了,上下左右方向键指令添加完毕,我们点击绿色小旗,看一下运行效果。在我们按下方向键时,小猫虽然可以移动,但是有几个问题不是我们想要的效果,1)小猫在移动的过程中,头的朝向一会朝下,一会朝上;2)在舞台中它可以任意移动,遇到迷宫的阻挡物也可以穿越;3)在迷宫的入口位置,它可以不进入迷宫,从外围也可以绕过去。
6、在每次表演之前,设置小猫是面向右侧出现在迷宫的入口位置,并将旋转模式设置为左右旋转模式,在小猫上下移动时头的朝向不变,左右移动时才变换头的朝向。
7、小猫在遇到迷宫障碍物时,之前设计的小猫移动3步,如果移动3步后,发现小猫已经穿越阻挡物(碰到黑色),那我们就可以让小猫退回3步(移动-3步),是不是这样就相当于小猫没有移动。
8、小猫在迷宫入口的位置是x坐标60、y坐标-160,在入口处我们只允许向上移动,那么我们就可以根据当前小猫的y坐标判断只有当y坐标的值大于等于-160时,下方向键、左方向键、右方向键才能使用,这样就可以控制小猫不会在迷宫的外侧绕过去。
9、迷宫游戏的结束胜利条件是小猫在出口处与小鱼见面,我们不用管小猫走什么样的迷宫路线,需要多长时间,对于游戏来说,只需要判断在按下上下左右方向键移动后,如果小猫碰到小鱼,那小猫就算走出了迷宫,在这里我们让小猫说一句话“I Win!”来表明小猫胜利,游戏结束。
好了,小猫的指令全部添加完毕,我们点击绿色小旗,看一下运行效果。
10、由上图的效果演示,我们又发现了一个问题,在小猫碰到了小鱼说出I Win之后,上下左右键还能运行,程序还在执行,我们希望当小猫碰到小鱼后,游戏就结束了,按任何按键都不能再移动了,那就需要把对上下左右键的判断放在当绿色小旗按下时的指令块中,而不是只要按下上下左右键就移动。
11、最后,我们给游戏增加一个变量,名叫计时,用来记录玩家走迷宫所耗费的时间。
12、计时的动作不是属于小猫或者小鱼的,我们建议把这种全局的变量放在舞台的脚本中,并在当每次点击绿色小旗的时候,将计时的变量设定为0。
13、计时器的原理是每隔1秒值加1,我们只需要重复执行,等待1秒,计时变量加1的指令块就ok!
14、我们这里不再需要单独的停止计时器的计时,因为之前设计的当按下上下左右键,如果小猫碰到小鱼,就停止全部脚本,计时器的停止也就包含在这里面。
至此,迷宫游戏的全部脚本操作都已讲述完毕,大家动手自己试一试吧!
做游戏学编程系列课程文中的所有文字及配图均为四眼长腿奶爸原创,未经授权,不得转载!返回搜狐,查看更多
责任编辑: