用户:
活动喵查看:30 回复:16 评论:30 创建时间:2019-11-26T15:06:06
【水果忍者教程P1】水果的出现(上抛、下落、克隆)
相信水果忍者大家都很熟悉啦,我挥舞刀(shu)剑(biao)刷刷刷,各种水果一分为二!
玩了这么多次的水果忍者,不如我们试试自己做一个水果忍者?
我们把水果忍者拆分成三部分来制作:
首先,想要切到水果,肯定要先把水果抛起来!
很多小朋友就想,使用物理引擎不就好了吗?
不过在游戏中,如果真的使用物理引擎的话,会发生什么情况?
让我们看看:
水果碰到其它水果会被弹开!!!
为了防止出现这种情况,我们决定手动搭建一个“物理引擎”
相信脑子灵光的小伙伴应该猜到了,对!我们要参考之前跑酷类游戏的二段跳,来搭建物理引擎
不清楚的小伙伴可以先看看跑酷主题游戏时的教程贴:
https://shequ.codemao.cn/community/201015
首先,我们理清楚抛起水果的原理:
水果抛起不断上升 → 到最高点停止 → 开始不断下降
我们用变量来表达就是:
给定变量一个值 → 该值不断减少,直到为0 → 变量继续减少(负值)
我们来说说实现过程:
首先,实现水果移动抛起,将使用这块积木,我们用西瓜举例
1、给变量一个初始值,我们就定为20吧。
2、变量数值不断减少,直到为0
我们使得“西瓜速度”这个变量不断减少,以达到速度变慢的效果:
由于每次减2后,变量值还是正值,所以我们西瓜还是在不断上升的状态,直到变量值为0为止。
我们来算算看:
20 → 18 → 16 ...... (每次减2后,依旧是大于0的值,即Y坐标是继续上升的,不过上升速度变小了而已)
重复循环10次后,我们的变量值就变成0了,这时候Y坐标增加值为0,就相当于西瓜停止上升了。
3、变量值在喵上继续减少
相信小伙伴们都了解过负数吧,我们在0的基础上继续减少的话,就进入到负数的阶段了
在负数的定义里有这么一句话: 负数与正数表示意义相反的量。
那么,当我们Y坐标,在变量值 > 0的时候,不断增加能让我们西瓜(角色)上升
所以,当我们Y坐标,在变量值 < 0的时候,不断减少能让我们西瓜(角色)下降
由于前面重复执行减少变量值的积木,现在变量值是不断减少的
我们来算算看:
0 → -2 → -4 ...... (每次减2后,乃小于0的值,Y坐标是不断下降的,下降速度越来越快)
我们来看看效果:
这个时候一些小伙伴就要问我了,不是初始变量值都是设定为20吗?怎么每次西瓜抛起的速度都不一样?
我们为了让游戏更有趣味性,我们在给定初始变量值20的基础上又稍稍 “增加了一点”
这样就把西瓜速度的变量值的初始值定在20~24之间任一值,即实现让抛弃高度的不同。
有了以上的基础,我们把具体实现的积木分解出来,让大家更好理解
这里我们做个限制,使得当西瓜的Y坐标小于-510时 (我们舞台的Y坐标最低大约为-450),才能发送西瓜广播,让西瓜“被抛起”
上述第二步的是西瓜速度变量值减少,这个要从一开始就设置
当收到广播“西瓜”时,让西瓜显示(为后续功能做铺垫),然后把西瓜速度的变量值设定一个20~24之间的值,然后把X轴任意确定一个数让西瓜在该位置开始抛起。
同理,可以加入不同的水果,切记每个水果的速度变量不能搞混哦!
(作品素材及部分积木源于训练时Mine7《水果忍者特性版》)
更多相关教程
《水果忍者制作教程》step1 如何抛起水果?
https://shequ.codemao.cn/community/213092
《水果忍者制作教程》step2 如何切水果?
https://shequ.codemao.cn/community/213093
《水果忍者制作教程》step3 计分、刀刃效果加入
https://shequ.codemao.cn/community/213094
【水果忍者作品征集】除了官方模板作品,你还可以改编什么?
https://shequ.codemao.cn/community/213095