具体题目要求和编程思路:竞赛题目Scratch游戏制作-领地大作战
本节我们讲解实现步骤(与角色无关的程序放在了背景里):
第一步:添加角色:小猫(大小70隐藏)、小狗(大小60隐藏)、鸭子(移到舞台左侧,隐藏),方格角色自行绘制,黑色边框,无填充的正方形,边长大约80(不用精确,后期可以调整)


第二步:创建变量:为方格创建私有变量“编号”、再创建一个列表“领地”
第三步:在方格角色中添加程序,生成3x3方格矩阵(生成9格克隆体,每个克隆体有一个自己的编号1-9),克隆体排成3行3列
运行程序,看方格是否紧凑的排列成如下图所示的九宫格,如果有重叠或者有间隙,回到造型里,调整正方形大小和中心点,直到刚好挨在一起。
第四步:上一步已经调整好了方格大小,下面再复制两个造型,分别填充黄色(小猫领地)和蓝色(小狗领地)。
第五步:切换到背景,新建变量“猫的位置”、“狗的位置”,编写代码,初始化“领地”列表(初始均为0,表示未占领),为小猫和小狗设置随机位置(1-9随机一个方格),等待1秒,广播消息移动并等待。
第六步:小猫小狗出现在随机位置,将小猫小狗的随机位置通过公式计算,得到他们所在的行和列(新增变量“猫-行”、“猫-列”、“狗-行”、“狗-列”),然后再转为坐标,将角色移动到该位置即可。
(小猫程序)
(小狗程序)
第七步:切换到方格角色,根据小猫小狗的位置,改变对应方格的颜色(克隆体对应编号的方格切换造型)
第八步:在背景中添加程序,根据随机位置,更新列表“领地”占领情况(小猫领地更新为1;小狗为2)
第九步:新增一个变量“当前移动的角色”,还是在背景中添加程序,随机的一个动物角色说“该我走了”1秒(1代表小猫;2代表小狗),广播消息“夺领地”
第十步:切换到小猫角色,当接收到“多领地”之后,判断变量“当前移动的角色”是不是等于1,如果是,就说该我走了,接下来重复执行,直到转换角色
第十一步:控制角色移动,有四个方向,我们先说向上移动需要满足的条件:1、角色当前不在第1行;2、当前位置的上方领地没有被小狗占领。只有这两个条件满足,才可以把小猫的位置移到上方(当前位置-3),小猫新位置确定了,就可以广播移动,让小猫移动到新的位置(移动流程跟初始随机位置移动完全一样),此时就可以交换角色,将当“前移动的角色”值设置为2,换小狗去夺领地了,具体代码如下:
其他三个方向思路完全相同
向下移动满足条件:1、角色当前不在第3行;2、当前位置的下方领地没有被小狗占领。
向左移动满足条件:1、角色当前不在第1列;2、当前位置的左侧领地没有被小狗占领。
向右移动满足条件:1、角色当前不在第3列;2、当前位置的右侧领地没有被小狗占领。
将以上四个方向的控制代码都拼接起来放到第十步的重复执行里面。
第十二步:切换到小狗,代码结构与小猫完全相同,将小猫对应的小狗,改为小狗对应的小猫。
小狗四个方向的代码:注意修改的部分
同样把这四个方向的程序都拼接起来,放入第十二步的重复执行之中
第十三步:判断输赢,因为每一次移动都改变着领地的情况,所以都需要进行判断,游戏是否结束,胜者是谁。切换到背景,我们创建一个积木专门用来判断输赢。
定义积木,首先看领地是否都已被占(列表中是否包含0,也就意味着有空领地),如果没有空领地,就需要判断输赢,新建两个变量“猫的领地数量”(只需要统计一个角色的领地数量,如果它的数量大于4那就是胜者,反之对方获胜),另外一个变量“i”用来循环列表,用来统计。
第十四步:在背景程序里找到"当接收到移动"这段,在后面使用自定义积木,判断游戏是否结束。
第十五步:切换到鸭子角色,当接收到广播游戏结束,显示,并说出胜者1秒。
第十六步:小狗和小猫角色都添加如下代码,游戏结束,脚本停止,不可以继续移动角色。
程序源码下载:竞赛题目Scratch游戏制作-领地大作战
本站内容未经许可,禁止任何网站及个人进行转载。







