1

常见编程问题Q&A

1.持续播放的背景音乐

如果想给作品添加持续的背景音乐,我们可以通过重复执行和播放音乐的积木来实现,需要注意的是,我们需要用到的是【播放声音直到结束】积木,而不是【播放声音】积木。

两块声音积木之间的使用差异:

积木名称运行效果
播放声音播放所选音乐,同时运行下一步积木
播放声音直到结束播放完所选音乐后,才执行下一步积木

所以当我们将【播放声音】积木放入【重复执行】框中时,将会有无数个所选音乐随着时间同时开始播放,产生奇怪的噪音,在作品需要持续播放的背景音乐时,记得要选择【播放声音直到结束】积木哦~

2.制作角色走、跑、飞等动态效果

很多时候角色需要一些走、跑、飞等一系列动态效果,那么在做这种动态效果前就一定要保证这个角色里有其他造型。

用重复执行+等待?秒来实现角色的动态效果!

等待的时长可以随实际需要改变,比如你的造型很多,那么等待的时间可以长一点,比如你想体现飞快奔跑的感觉,可以缩短等待时长。

3.角色的坐标与移动

角色坐标表示的是角色在舞台中的位置,有对应的X和Y轴,坐标系可以定量地描述物体的位置,一个位置对应一个坐标,X的正负值代表左右,Y的正负值代表上下。

我们可以通过改变角色坐标的积木,来实现角色在作品中的移动,积木的使用效果如下:

坐标的改变实际效果
移动到(x,y)瞬间将角色移动到点(x,y)
增加x的值(增加y的值则方向变为竖直)瞬间把角色水平移动所设置值个单位长度(正数向左,负数向右)
设置x的值为瞬间将角色x坐标改为设置数字,并将角色移动到对应位置
在一定时间内移动到(x,y)把角色在规定时间内匀速移动到对应点(x,y)
在一定时间内增加x的值(增加y的值则方向变为上下)把角色在规定时间内左右移动所设置值个单位长度(正数向左,负数向右)

4.广播的配合使用

广播功能是指利用【发送广播】和【当收到广播】积木,实现作品内角色的互动

例如:在《贪吃蛇》中,我们想实现当按钮被点击时,“贪吃蛇”向指定方向移动。

首先,设置广播的发起对象及条件:当按钮被点击时,发射一次广播“向上移动”,然后设置广播的接收对象及执行动作:当收到“向上移动”广播时,面向90°,然后移动3步。

可能大家会问为什么不直接按下按键然后直接移动,其实很多情况下,尤其是一个屏幕中有许多角色的前提下,他们之间有很多相互交叉的操作,比如训练师点击一个箱子,箱子里面就出现一堆源码精灵,那么当箱子被点击时只需要发送一个广播,就可以让所有的精灵接收广播然后一起显示啦。

  • 在Kitten4中 广播只能在同屏幕内交流哦~

5.【如果】积木的使用

训练师在制作《flappy bird》时,想要实现当飞行物碰到上、下障碍物时,就结束游戏,所以如下图连接了积木,但是却发现没有达到想要的效果,这是为什么呢?

是代码没有被执行吗?可以看到这组积木的触发条件是【当开始被点击】,只要作品运行,就会运行下方的积木,所以积木的确运行了,不过这段积木只会在开始的时候,进行1次判断,然后本组积木就结束运行。

我们想要的效果是当满足条件,比如碰到了别的角色,就执行【如果】积木内的积木,所以需要搭配【重复执行】积木,让角色持续的做判断,所以在作品运行过程中只要自己碰到了障碍物,它就会停止脚本然后结束游戏了~

6.用变量来记录得分

变量可以记录作品某些不断变化的值或控制这些值的变化。通过变量训练师们可以实现得分记录,控制游戏变化等功能。

例如:当我们在《贪吃蛇》作品中想记录我们吃到目标物的数量时,可以新建一个变量“得分”,在每次“贪吃蛇”吃到目标物的时候,让“得分”的值+1,并在屏幕上显示实时得分。

  • 作品运行后,每当“贪吃蛇”碰到目标物,屏幕上得分的变量就会实时增加1。

同时还可以利用得分设置胜利或者失败的规则,例如:当得分大于5时,提示胜利,停止游戏。

注:变量共有两种,在创建时选定,具体使用差别如下:

变量类型使用方法
角色变量仅供该角色使用,其他角色无法调用、修改变量的值
全局变量作品内所有角色都可以调用、修改变量的值

7.用云变量来制作排行榜

我们用变量可以在游戏过程中记录得分数,那么怎么样可以把大家的游戏得分同步在一起并且形成一个榜单呢?这个时候我们就要用云变量来记录每一个人的得分啦!

还是以《贪吃蛇》为例,当收到“失败”的的广播时,可以把当前变量“得分”的值同步给云变量“排行榜”,当然这里有一个需要注意的点,既然是排行榜,一般都是记录每一个训练师的最高分,所以在同步“得分”的值之前,要先判断当前的“得分”是不是历史最高分,如果是就可以把值同步给“排行榜了”。

注:云变量共有两种,在创建时选定,具体使用差别如下:

变量类型使用方法
公有云变量所有玩家都可以使用,一般用语聊天室、全服公告等功能
私有云变量只能修改自己的云变量,一般用于排行榜、进度记录等功能

8.如何实现屏幕切换(Kitten4)

每一个屏幕是它包含的角色存在的舞台,不同屏幕内的角色和背景相互独立存在,即不同屏幕内的角色无法直接进行互动,但可以通过屏幕积木和全局变量进行沟通。

由于作品运行时只能有一个屏幕的画面被展示,所以如果作品包含多个屏幕,就要考虑多个页面间的切换规则。切换屏幕的操作需要用到与屏幕操作相关的积木:

积木名称积木类型所在分组功能
当 切换到 当前屏幕事件积木事件当画面进入当前屏幕时,运行下方连接积木
切换到屏幕 [1]事件积木事件当积木被运行时,切换到所选屏幕
[离开] 屏幕 [1]判断积木侦测当积木被运行时,判断当前画面是否留在/离开所选屏幕

利用上述积木,我们可以通过屏幕功能为游戏制作封面:比如我们制作的《flappy bird》,只使用了一个屏幕,在游戏一开始就进入了游戏操控界面,有时候很难反应过来,所以我们再加一个屏幕。