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

简单(菜)的LuaSTG教程3:更复杂的简单弹幕

2019-10-13 11:20 作者:SSWTLZZ  | 我要投稿

emmmm

为什么标题叫更复杂的简单弹幕呢,不是有矛盾吗

UP小学语文没学好唉,其实是不矛盾的

因为这篇讲的是子弹和子弹组,他们只能做到匀变速直线运动,所以叫简单弹幕

但是,让他们的发射更加花里胡哨的复杂,就是复杂弹幕了

我大概不会讲很多,只会放几个简单(?)的例子

首先,举个什么例子好呢

那就妖梦斩击吧((

首先,放一张成品图

哇这是什么东西啊怎么这么一大坨啊

emmm其实也不是很复杂啦我就一个循环一个循环的讲吧

(上面的大循环是奇数狙,下面的是偶数狙,没什么区别

首先是一颗小子弹

这个都做不来你退群吧(

嗯,这是一颗小狙(,速度为3,角度为0,aim to player为true的子弹

然后呢,再是第二个循环

还记得开花弹吗?开花弹就是靠循环改变变量a,然后把a赋值给子弹的angle,那么子弹的速度也同样是可行的

定义一个变量v,init为3,increment为0.5

这样就做到了一发弹幕的效果

然后呢,就是那个'斩'的动作了

斩的动作其实更简单,只要改变子弹的发射点就好了

定义一个变量x,然后赋值,增量随意(这个妖梦斩击的话,我喜欢x从-120到120

执行21次,间隔2帧,变量名x,init为-120,increment为24(虽然循环执行了21次,但变量其实才变了20次,所以执行21次)

似乎有那味了,但是这只是easy版的

那么lunatic版的该怎么实现呢

其实子弹aim to player开上了之后呢,就是自机和发弹源的角度加上子弹属性里的angle而已

所以这个自机狙其实是相对的(也就是说,只要angle不为0,那就绝对打不中自机(不考虑判定大小))

所以呢,让这个东西的angle分别为-30,0,30不就行了吗?(这个数据不一定是原版的)

执行三次,变量a,init为-30,increment为30

然后就做出上面的效果了

这三个循环的顺序是无关的.

可以自己试试把他变成偶数的?

我觉得只要讲两个例子就够了((

然后呢,下一个就是更花里胡哨的例子了

[纯粹的弹幕地狱],就是这张卡.

其实原理很简单(由于我懒教程需要,我就直接做4P的效果,逐渐加强的效果就不做了)

要用到四个create task(我菜,只能这样做


em

先做1P,1P是什么效果来着(

我就当它是那个红弹好了

效果

第一个循环是执行无限次,间隔为30帧

第二个执行30次,变量a代表的是随机开花弹,后面的xzb,yzb就是代表随机坐标

而图中这种发射点在一个圆上的效果该怎么做呢?

发弹点的X坐标加上一个R*cos(angle)                                                                                                                Y坐标加上一个R*sin(angle)

其实就是圆的参数方程,R代表圆的半径,angle只要等于子弹发射的角度就行了

2P效果的话,和一p没什么区别,换了个弹型,XY坐标,发射间隔

三p的话,就是左右两大护法,蓝弹一出天地灭

其实也和1,2P差不了多少

其实差别还是挺大的(

在上面的基础,interval改为60,way数改为75,颜色变为蓝色,X,Y坐标变化

4P最简单,连续的开花弹

最终效果
最终效果

好了,这期教程就到这里吧

8888888888888(凑不要脸

简单(菜)的LuaSTG教程3:更复杂的简单弹幕的评论 (共 条)

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