少儿编程Scratch中级项目——飞翔小鸟
游戏介绍
使用Scratch进行Flappy Bird游戏的创作能够锻炼孩子的一些能力
学生们正在掌握运用"如果-那么"语句以实现不同代码路径的技术,在这一过程中他们能够编写出能够在特定条件下执行不同操作的程序。具体来说,在'飞翔小鸟'游戏设计中这一功能模块主要应用于判断小鸟是否会碰到管子或是舞台边界线的情况。
2.循环语句 :循环语句被设计为重复执行一组指令。在游戏Flying Birds中,孩子们能够通过循环机制实现特定功能:例如控制飞行轨道持续运行以实现无缝切换(使飞行轨道不断运行),以及通过循环机制控制小鸟的高度变化,在玩家按下空格键时实现其垂直运动(直至玩家按下空格键使之上升)。
3.克隆语句 :复制执行指令集的功能是允许开发者重复执行一组指令。在游戏中‘飞翔小鸟’中,默认情况下会不断重放相同的动作序列以实现游戏目标,在适当的时候由玩家按动空格键控制角色方向。
4.逻辑运算 :涉及的有基本运算如AND(与)、OR(或)、NOT(非)等;他们将掌握这些运算被用来构建更为复杂的条件判断的能力。
5.数学技能 :理解坐标系、随机数的数学概念。
6.逻辑思维 :在游戏中进行创作的过程中,孩子们需要理解并分析游戏的规则与内部机制,构建对空间关系的想象力,明确如何通过代码来完成上述功能的需求,从而最终完成相应的功能需求。
游戏设计
1.游戏规则
使用键盘的空格键操作“小鸟”角色飞翔不碰到水管和舞台边缘。
2.所需角色
小鸟

水管相关的内容基于Flappy Bird的素材。其中一对素材应自动生成,并保持一致的距离,在x轴方向上保持相同的间隔,在y轴方向上采用随机数值

3.游戏逻辑
当玩家按下绿旗按钮启动游戏时,系统将触发一个3秒倒计时阶段。在这一阶段持续过程中,默认情况下会在舞台右侧边缘隐藏并放置一个初始状态中的“水管”角色,并将其起始位置设置为X轴坐标约200处。在此时间段内,“水管”角色每隔3秒就会生成一个复制体。“水管”的复制体会依次出现在舞台右侧边缘,并且它们的起始位置设置回到X轴坐标约200处;然而,在Y轴方向上则会通过随机化处理来确定各自的位置高度。这不仅增加了游戏的趣味性还提升了挑战难度。随后,“水管”的复制体会持续不断地向左移动——即它们会依次进行X轴方向上的减小操作。
在玩家游戏中必须操控‘小鸟’角色以确保其在整个飞行过程中规避所有‘水管’障碍。游戏系统会持续监测并记录‘小鸟’角色停留空中的时间长度,并将其作为最终得分。为了便于追踪和计算玩家的游戏成绩,在游戏系统中设置了专门的‘飞翔时间’变量。建议各位玩家来说为了提高最终得分并获得更好的游戏排名,请尽量延长‘小鸟’角色在空中的停留时间。
4.代码搭建
将鼠标移至页面右下方标记为"猫头"的位置;插入上方两个角色素材;然后右键并复制一个新的"水管"角色;随后,在"造型"模块中应用垂直翻转变换至一侧方向


然后,在下方右侧的“图片”模块中设置背景时,我选择了“广阔的天空”作为背景。

这样我们整体的外观就有了。
涉及小鸟能力者(即所谓的"小鸟"角色)的代码模块开发流程如下:当绿旗被点击启动游戏时,“小鸟”将被放置在舞台左侧边缘附近的位置。为了减缓倒计时阶段的游戏启动等待,“小鸟”将在游戏开始后的3秒钟内移动至舞台内部预先确定好的位置。经过3秒钟的时间到达该位置后,“小鸟”的行为将通过这一动作引导玩家的游戏兴趣。

随后,“小鸟”将不可避免地进入持续下降的状态。这表明通过执行“Y坐标减少2”的操作来模拟重力效果。“数值变化的负值越小就意味着下降速度越快”。为了使“小鸟”能够在玩家的操作下实现上升,请注意程序会检测到“空格键”被按下。“当程序检测到玩家按下空格键时,“小鸟”就会执行一次‘Y坐标增加10’操作,并表示向上移动。”为了增强游戏的互动性,请考虑调整它的角度使其有种煽动翅膀飞翔的感觉吧!代码如下:

当小禽类与排水沟相遇或碰到舞台边界时,则应采用逻辑运算符'或'来进行判断,在任意一种情形下均需立刻暂停所有相关程序块以完成游戏终止流程。

小鸟


在搭建“水管”角色代码之前,请做好以下准备工作:首先,在创建好“水管”角色之后,请立即调整其位置。建议将“水管”移动至X=200、Y=-200的位置更为合适。这样可以确保“水管”位于舞台右侧边缘,并且不会过高或过低。为了让游戏能够持续运行,请确保每个3秒时自动复制并生成新的“水管”实例。

当它作为克隆体启动后,在舞台区域中将其置于x=200的位置,并设置其y坐标为-200至-280范围内的一个随机数值。随后,在舞台区中可以通过手动测试来调整这个范围的大小,从而影响游戏难度。为了实现水管从右向左移动的效果,则需要在程序中添加一个循环指令块(即每次循环执行一次操作),具体来说就是让角色的x坐标持续减少(即执行"x += -2"的操作)。当它的x坐标降到大约-252时,则意味着该角色已经超越了小鸟角色的位置。此时应当将其隐藏起来(即将角色对象设为不可见),以减少不必要的资源消耗。具体代码如下:

位于上方的部分'水管'的代码结构相似,具体体现在其y坐标取值范围的不同之处.无需过多阐述.

游戏的核心代码已成功搭建完毕。随后,在造型模块中生成了一个倒计时角色,并通过造型模块中的文本功能导入了'游戏将在3秒后启动'字符串。接着复制两个副本,并将它们的数值分别更改为2和1。

该代码的逻辑为:当点击旗帜时,默认展示'造型1';然后反复运行直至'造型编号'达到3;每秒切换下一个造型一次;完成后需等待一秒钟后将其隐藏。

总结
游戏的设计相对简单, 其核心在于如何持续生成相同x轴间距, 随机分布于y坐标的水管, 采用的方法是在y轴上设置两个固定点作为起点与终点, 每隔3秒钟复制自身后, y坐标取随机数. 如若能找到更优的设计方案, 请赐教.
线上体验:飞翔小鸟 - Scratch中社
