常见编程问题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》,只使用了一个屏幕,在游戏一开始就进入了游戏操控界面,有时候很难反应过来,所以我们再加一个屏幕。
- 在屏幕2我们可以设计游戏的封面,可以加上游戏开始按钮,当按钮被点击,切换到屏幕1。
- 屏幕的切换还常用于故事性的作品,可实现多场景切换,快点去试试吧~