今天来写一个scratch的小游戏,推箱子。
需要准备的素材,就是一个自己喜欢的背景,然后从角色库里找到一个角色作为主角来推箱子,再就是自己画两个正方形当做箱子来用,当然,也可以自己去网上找好看的素材。
下面就是我设计的页面,其中红色的是要被推动的箱子,黑色的是它的目的地,我们就是要把这个红箱子推到黑箱子的位置,然后两个箱子会出现在随机位置,需要重新开始推动,每推过去一个,就可以得一分。
首先要写我们人物的程序,人物的程序比较简单,就是按下上下左右的按键,让角色往对应的方向移动,比如说按下上移键,就面向上方,然后移动20步。
要注意,用这种方式移动角色,会出现一个问题,那就是角色会任意旋转,显得很滑稽,所以设置旋转方式为左右翻转,然后角色一开始要移到一个起点位置,我设置的是画面中心店,也就是坐标(0,0)的位置。
接下来就是目的地的任务,目的地要在点击小绿旗的时候出现在一个随机的位置,显示出来,然后去判断碰没碰到红箱子,如果碰到了,那么就藏起来,换一个位置重新出现。
当点击小绿旗的时候,要把他移动到最后面,避免挡住红箱子,然后建立一个变量,叫做得分或者分数都行,因为刚开始游戏,还没有得分,所以需要把得分设为0,然后移到初始位置,为了避免他出现在舞台边缘,一半漏出来,一半藏起来的情况,我们需要看一下这个角色的x坐标在什么范围内,y坐标在什么范围内,然后根据这个范围随机生成坐标,然后设置完这些就可以让他显示出来了。
设置完以后,就是做一个判断,如果碰到红箱子,那么就隐藏,将得分增加,同时要发送一个消息给红箱子,让他也隐藏重新换位置,过一秒以后,让目的地移到随机位置,然后重新显示出来。
再然后就是我们要推动的红箱子的任务,红箱子要实现人物朝哪个方向推,就朝哪个方向走,那就是做一个判断,如果碰到了人物,那么就面向人物的方向,移动20步,还有一个就是点击小绿旗的时候,箱子要显示出来,并且设置一个初始的坐标,作为游戏开始的箱子位置。
红箱子还有一个任务,就是接收到目的地发来的消息,需要隐藏起来,然后换到一个随机的坐标位置,重新进行显示。
写到这,基本的程序就完成了,当然还可以添加一些程序让他更加有趣一些,比如箱子可以设置多个造型,每推完一个就变一次造型,或者加上背景音乐,或者随着得分的变化,加上时间限制,得分越高,给的时间就越少,然后超时没推到目的地算游戏失败等等,都可以去创意设计。
以下是完整程序: