效果演示:
我们的游戏更新音乐版本之后,很多小伙伴也想自己制作一个下落式音游玩法,现在就让我们看下怎么制作吧!
一:按钮出现并放大
首先我们制作出我们需要的这个UI界面
圆圈的大小是150*150,内部按钮是50*50,内部按钮选择与与父元件对齐,且与父元件关联(水平和垂直间距不变)
我们假设想让这个元件随机在这个区域生成,这个范围内可以通过原件看坐标,x坐标范围是100~1000,y坐标范围是100~500
这里我们就可以用到随机数,我们新建两个变量,分别代表x和y
所以我们让变量x生成100~1000的随机数,变量y生成100~500的随机数,把原件设置成这个随机数坐标就可以了
新建一个随机位置的触发器,我们点击开始游戏按钮之后,就运行这个触发器,然后生成随机位置
生成随机位置之后,就要让我们的元件显示并放大了,那么如何放大呢?
我们先假设内部按钮放大需要1秒的时间,这一秒的帧数20帧,那么就是1/20=0.05,0.05秒就会设置1次属性(改变一次按钮的宽和高,这两个属性是一直相同的)
那么我们内部的按钮直径是50,外部圆圈直径是150,那就需要方法150-50=100个单位,100/20=5,每帧内部的按钮直径会放大5个单位
那么我们可以新建一个变量,代表直径的值
我们按照上面的理论,开始设置“内部按钮放大”触发器,这个触发器也是循环运行的
先看动作:
动作1:等待0.05再执行(每帧0.05秒,上面讲过)
动作2:使变量“长宽1”加5(也就是每帧直径加5)
动作3:设置内部按钮的长和宽均为变量“长宽1”(将加过的变量值设置给长和宽也就是半径)
动作4:继续运行这个触发器循环
条件1:注意这里加了一个条件【变量“长宽1”<160才会继续循环运行】,因为上面我们说过外部圆圈是150,那么160的时候就可以不再放大了,再让他不再继续循环。
然后,内部圆圈在放大至160停止放大后仍然会停留在屏幕上,这里我们加一个判定,如果内部圆圈=160,就隐藏元件
新建一个“隐藏1”触发器
然后让“方法1”在循环的时候判定是否需要隐藏:
因为我们在内部圆圈放大的时候修改了变量“长宽1”和内部按钮的位置,所以元件每次出现,我们都要先将这两个参数修改回去,我们回到“放大1”这个触发器之前的“随机位置”触发器,在这里修改回去。
且我们上面运行完之后会隐藏元件,所以这里也让元件显示,显示后去运行“放大1”触发器,进行放大
步骤我们都设置完成了,这时,我们就需要让这一整套触发器自行循环运作了,因为音游中,元件不可能只出现一次,所以我们在“随机位置”这里加一个延迟,然后自循环运行“随机位置”
这里的延迟大家根据实际情况进行设置。
我们来看一下效果:
然后大家可以根据自己想设定的难度,来设置元件的数量,我就设置3个吧,再复制两个出来。
Xy的变量、长宽的变量、元件都需要额外设置噢。
成品是这样的:
可以看到他们都是同时出现的,我们还是加一个间隔,让他们不会同时出现比较好:
直接在第二个和第三个加一个等待时间就可以,我分别加的是0.5和1.5,大家可以根据自己的测试,测试出最优化的间隔
这是效果:
二、点击判定
只需要在玩家点击按钮的时候,判定相对应的变量“长宽”的值就可以。
我们先配置perfect和good和miss的范围吧
我们上面设置的是,按钮由50到150,每帧+5,到120是契合边框的,到160会消失
下图的三个,第一个是perfect契合,第二个是默认,第三个是消失状态
根据长宽来计算的话,perfect是长宽是120,因为是每帧+5的,我们可以设置前后10帧为 110~130 这个之间是perfect
good就设置100~140, miss的话就>140
那就一共是
100~110是good
110~130是perfect
130~140是good
140+是miss
直接做判定即可:
测试过没问题,我们再复制其他的两个判定。
来看一下最终的效果: