Day45 ( 游戏设计 ) 贪吃蛇

角色设定

在角色编辑区,删除猫咪角色,使用绘画,绘制「蛇」和「蛋」两个新角色 ( 参考:造型与绘图)。

Scratch 3 教學 - 貪吃蛇

切换到”造型”页签,将红色正方形的「蛇」,对齐中心点,并将尺寸调整为 24×24

在造型页签左侧清单的预览图,可以看见造型的真实尺寸。

Scratch 3 教學 - 貪吃蛇

使用同样的做法,将「蛋」的造型对齐中心点,尺寸调整为 24×24

Scratch 3 教學 - 貪吃蛇

贪吃蛇游戏原理

贪吃蛇的游戏基本上属于「清单」(阵列) 的操作,只要明白清单的控制原理,就能轻松实现贪吃蛇的游戏

  • 开始时,蛇的列表长度为 1,清单内容是蛇的位置
  • 蛇在移动时,将新的位置加入在第一个项目,并删除最后一个项目
  • 如果吃到蛋,清单长度增加 1 ( 蛇的长度增加 1 ),将蛋的位置加入在第一个项目
  • 接着就按照上方的逻辑,控制移动和吃蛋的清单内容。
Scratch 3 教學 - 貪吃蛇

积木程序原理( 蛇)

点击「蛇」角色,建立「长度、得分、x、y」三个变量以及「listX 和 listY」两个列表。

  • 得分:总共吃到几颗蛋 ( 勾选显示在舞台上 )。
  • 长度:蛇的长度。
  • x:水平移动的方向和距离。
  • y:垂直移动的方向和距离。
  • listX:记录蛇身体 x 坐标的清单。
  • listY:记录蛇身体 y 坐标的清单。
Scratch 3 教學 - 貪吃蛇

设计点击绿旗的程序 :

  • 设定 x 和 y 变量为 0。
  • 将蛇根据 x 和 y 变量定位到舞台中心点 (0, 0)。
  • 使用重复无限次积木,每隔0.1秒执行x和y的坐标改变(如果 x、y 变量有变化,坐标就会改变)。
Scratch 3 教學 - 貪吃蛇

放入「当向上、向下、向右、向左键被按下」的积木,在按下对应键盘时,改变 x 和 y 的变数值,因为角色的尺寸是 24×24,所以 x 和 y 的数值以 25 为一个单位,让排列或移动时,会有 0.5 的间隔( 避免误触以及画面较为好看 )。

键盘xy
向上025
向下0-25
向左-250
向右250
Scratch 3 教學 - 貪吃蛇

完成后点击绿旗,就能用键盘控制红色正方形移动。

Scratch 3 教學 - 貪吃蛇

修改点击绿旗程序 :

  • 将得分设定为 0。
  • 将 listX 和 listY 的内容清空。
  • 将一开始的 xy 坐标,添加到 listX 和 listY 列表里
Scratch 3 教學 - 貪吃蛇

根据贪吃蛇游戏原理,将「插入列表的第一项」和「删除列表的最后一项」积木加入重复无限次积木里,在移动前把 xy 坐标插入列表的第一项,并删除列表的最后一项

Scratch 3 教學 - 貪吃蛇

接着设计吃到蛋的程序:

  • 放入长度设定为listX或listY的长度。
  • 放入”如果… 那么」,判断如果碰到”蛋”的角色时要做的动作:
    • 得分增加 1。
    • 插入当前 xy 坐标到 listX 和 listY 的第一项
    • 创建自己的分身
    • 广播”吃到蛋”的信息
Scratch 3 教學 - 貪吃蛇

设计分身生成( 创建蛇的身体) 的程序 :

  • 改变分身的颜色和亮度,使其和蛇的头有所区隔。
  • 使用重复无限次积木,每次重复执行:
    • 判断如果长度大于 1,每次重复让长度减少 1
    • 按序取出 listX 和 listY 的项目,作为分身的 xy 坐标使用
Scratch 3 教學 - 貪吃蛇

积木程序原理( 蛋)

点击”蛋”角色,编辑对应的程序:

  • 点击绿旗时,将蛋定位到 (100, 0),并将图层移到最上层 ( 避免被蛇盖住 )
  • 收到”吃到蛋”信息时,将 xy 坐标设置为 25 倍数的随机数( 刚好定位在蛇移动的路径上)
Scratch 3 教學 - 貪吃蛇

完成效果

完成后,点击绿旗,就可以开始进行贪吃蛇的游戏。

Scratch 3 教學 - 貪吃蛇
(0)
打赏 微信扫一扫 微信扫一扫

相关推荐

发表回复

登录后才能评论