欢迎光临散文网 会员登陆 & 注册

教你制作小球淘汰赛(3)场景完善以及基本关卡制作

2023-08-17 14:21 作者:不会玩的萌新a  | 我要投稿

场景的优化完善

制作完以上内容后,还是有一些小内容可以进行优化

1. 第一关的圆环删除

第一关的圆环如果给予一定的时间删除就不能保证比赛的随机性,而如果直接手动删除又会严重影响到观感。所以,综合以上两点,我给出2种合适的解决方法

第一种:添加快捷删除键

快捷控制键的设置

如上图,选择第一关的圆环,在快捷控制键里面找到删除键选项,选择合适的删除键即可

这样子当开始运行的时候,只需要按下这一个键就可以删除圆环了。

第二种:随机timeToLive

在圆环写下以下代码

圆环代码

这样的意思是当比赛开始的时候1-3秒内的任意时间圆环会自动删除,达到随机的效果,其中(rand.uniform01)的作用是在0-1之间取随机数

2. 预备格的设定

这一点在灰安教主的场景里面没有出现,但是我觉得有一定的价值,可以看得更清楚

在第一关的上方增加一小片区域,同时上移视角跟随方块,使空间大小等于上移距离

预备格的样式

在小空间里面增加绿条,代码和过关的绿条相似,但是要传送到第一关的圆环里面,也就是在第一关的圆环里面添加一个圆点,存下一个坐标,让绿条传送

例如可以在绿条写下

绿条代码

第三句话是显示名字,可以删除(我这里是运用了_name这个变量,你们用materialName代替。之后在下面的圆点写下以下代码即可

圆点代码

接下来,把小球从第一关的圆环里面转移到上面的预备格中,再依次添加名字/注释即可

预备格成品

3. 闪队小球的碰撞优化

如果直接在小球里面写下闪队的代码,那么只会让小球变色,小球碰到排名框不能让排名框内的文字也一起变色,可以使用以下办法解决这个问题

创建五个小球或方框,把他们的颜色改为闪队的颜色,然后,时时刻刻用变量存储他们各自的颜色。

新块的储存代码

接下来,在需要闪的小球update中实时把他们的颜色改为这个变量中的颜色,并在oncollide里面写下以下代码

闪队小球的代码

这段代码的大意是如果闪队小球碰到过关区文本框/排名框的时候就把他们的update设置为“textcolor=scene.my.……”,达到让排名框或其他需要更随变色的东西实时改变颜色。(_pp是物品是否需要改变颜色的意思)

当然,其他小球碰到排名框/过关区不需要让他们闪,只需要变色就行了,同时也要去除这个物体的update。在其他所有的小球里面写下以下代码即可

其他小球的代码

4. 淘汰条的简化设定

在上述方法中,如果是积分+末尾淘汰赛,那么就会让小球传送到错误的名次,并且49个淘汰条每一个都不一样,改起来也不方便,所以可以使用以下方法进行优化

第一步,在控制台中写下scene.my.num:=50表示创建一个变量储存剩余的小球数量

第二步,把淘汰条的传送代码修改为

淘汰条代码

_M表示所触碰到的物体是否为小球,eval代码为字符串拼接的意思,scene.my.no(n)就是每个排名框对应的位置。一开始一共有50个小球,所以第一关就会把小球传送到50名的位置

当然,不能每一个小球都传送到50名的地方,所以每传送一次小球都要把scene.my.num减去1。或者如果你选用了灰安教主排名方式,可以在小球的ondie里写下scene.my.num=scene.my.num-1

这样子,全部关卡的淘汰条中的代码就一样了,可以直接复制使用。

5. 碰撞作用层的巧妙运用

有时候,圆环、关卡、墙壁等东西会相互阻挡,产生一些乱七八糟的bug,让我们非常不愉快,例如关卡内的一个东西转到了圆环上,被传送到了圆环中间。为了防止这种事情的发生,我们需要设置一套合适的碰撞作用层,让所有物件正常运行,互不干扰

以下是一个示例(灰安教主的)

物件/作用层

正常小球 ABCDE

过关小球 E

圆环 C

起点标志球 (无)

关卡(普通) A

关卡特殊物件(如镭射笔)AE

过关条 D

关卡隔条 A

透明隔条 EIJ

关卡数显示框 (无)

过关区名称显示器 E

过关区下面的两个方框 E

淘汰条 E

排名数字框(无)

排名超小球/落点框 I

排名文本框 J

排名挡板 I

彩球颜色存储处 (无)

(如果直接淘汰,没有超小球,把文本框设为B)

需要改变小球的碰撞作用层时,改变小球的collideset即可,其中数字为2进制编码,对应如下表

改变碰撞作用层示例

总数即为对应的碰撞层的编码的和

A层 1

B层 2

C层 4

D层 8

E层 16

F层 32

G层 64

H层 128

I层 256

J层 512

所有的优化设定就讲完的,有什么其他的可以私信补充,接下来讲一下基本的关卡设定

关卡的基本制作

制作关卡有不同的难易程度,这一讲先讲述极其简单操作即可完成的关卡

1. 回家条

增加一个红色的方框,位置和绿色的过关条对齐

在回家条中写下以下代码代表回家(下面是消失代码,写不写都行)

回家条代码

需要注意的是,如果小球同时碰到回家和过关,会产生bug,所以一般需要增加一个小条隔开过关区和回家区。制作方法也很简单,先创建一个方框,用切割工具切开一个尖角即可

隔开示例

2. 圆球

创建一个圆球黏附到背景

3. 方框

创建一个方框黏附到背景

4. 斜着的方框

先创建一个方框黏附到背景,再选择旋转工具旋转

5. 三角形

创建一个长宽比1:2的方框,切割出2个尖角

三角形的制作

再删去多余部分,剩下的东西黏附到背景即可

6. 被截断的物体

先创建一个物体黏附到背景,再创建一个物体,放置在需要切掉的地方,选择建构固体几何-差集,再删去后创建的物体即可

差集的用法

7. 组合的物体

和上一个类似,但是选择联集

8. 两个物体重叠的部分

和6类似,但是选择交集

9. 不规则多边形

只需要在左边的工具中选择多边形工具即可

10. 可染色物体

在脚本选单中设置_pp为true(前提:有上述第三条优化,否则在onCollide里写下color=e.other.color会有一半的效果(无法闪))

以上都是简单的静止物体,下一节将会教你们如何设计可以移动的物体,相信你们一定可以做出满意的作品!

教你制作小球淘汰赛(3)场景完善以及基本关卡制作的评论 (共 条)

分享到微博请遵守国家法律