Scratch 飞猫吃鱼

2021-02-07  本文已影响0人  通往心的路

本文章将在Scratch Desktop 3.0中完成飞猫吃鱼的功能

运行截图

飞猫截图运行.png

下面先简单介绍编程,然后进行实战。
程序组成,简单来说就是:

  1. 组织数据
  2. 操作数据
  3. 获得结果

飞猫吃鱼也不例外,游戏最终结果就是得分,如吃到一条鱼得1分,吃到一个樱桃得一分,等等。

先不急写代码(搭积木),先分析需求(实现效果,及猫的操作)

需求分析:

  1. 根据习惯,让鱼从右往左游。
  2. 一只猫可以全屏幕飞,碰到鱼就可以把鱼吃掉,并且得1分。
  3. 鱼被吃掉后,会重新从左边游出一条鱼来。

分析使用情况:

  1. 设置↑↓←→来控制猫的飞行位置。猫不能飞出游戏屏幕。由于设计的是在天空飞,屏幕下面会有一段陆地,这一段也不让猫飞。
  2. 猫无论从那个位置碰到鱼都把鱼吃掉。(简化操作,不需要吃的动作)
  3. 鱼到吃掉后,会立即消失,并且从右边刷出一条新的鱼来。
  4. 如果猫吃的鱼越多,那么鱼游动速度变得更快,即增加相应的难度。

开始实现代码(搭积木)

增加场景

首先增加场景,在右下角选择Blue Sky的背景图用作的场景。然后在场景中增加一只飞猫作为操作的角色。

增加猫

下面就可以新增猫的操作了.
先到角色区域选择cat flying, 并选中。上面分析到用↑↓←→按键来控制飞猫的飞行,在事件中找到当按下[空格]建的积木,放置到编程(代码)区,四个分别放,然后把[空格]分别调到[↑],[↓],[←],[→]。然后添加事件的处理,知道scratch把整个屏幕分成了xy轴,中心点为原点,所以按,就相当于增加Y轴的值,即选择运动中的将Y坐标增加(x),并放置到当按下[↑]键下面。这个就可以按来操作这只飞猫上移了。
同理,可以设置其它三个键位。这样就控制猫在满屏幕飞了。
问题来了
需要让猫在屏幕的一部分飞,比如地上就不能飞,这个时候怎么办呢?需要给猫设置一个边框,而超出这个边框的时候就不响应对应的按键消息了。这是就要明确的知道猫飞到了什么位置,然后用这个位置跟限制边框比较,看是否超出了。
变量出场了
先增加6个变量,分别为猫位置X猫位置Y场景顶场景底场景左场景右。需要给这些值设置初始化值。这个时候就要监听旗帜事件,分别设置为猫位置X=-120猫位置Y=0场景顶=170场景底=-20场景左=-170 场景右=170注意:变量是全局的
变量设好了,要让他起作用,就需要用变量控制猫的位置,并且防止出边框。用操作举例:原来是按键时是直接操作猫Y坐标的,而现在直接操作变量猫位置Y,然后在把猫Y左边设置为变量猫位置Y如果有经验的人,这时就会想,如果能把这二者绑定,不就完美了吗?。这时,控制猫位置Y就相当于控制猫的位置了。那如何控制猫不坠落到地上呢,需要引入条件分支。把条件分支如果<>就{}那么{}插入到当按下[↓]键的积木中,并在条件中加入 运算 <<(猫位置Y) < (场景底) >或<(猫位置Y) = (场景底) >>, 然后在那么中加入变量控制将[猫位置Y]设置为(场景底),在否则后面加上变量控制将[猫位置Y]增加(-10),然后在最后面加上运动 将Y坐标设为(猫位置Y)。这样就可以让猫不会坠地了。然后就可以操作测试,猫是否会坠地。
同理,我们也可以用同样的方法进行其它三个方向的设置。

吃鱼

上一篇下一篇

猜你喜欢

热点阅读