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

给crazystorm人看的LuaSTG教程(大嘘)

2020-08-23 16:23 作者:SSWTLZZ  | 我要投稿

嗯,我动态里也发过了,我要写这么一篇文章
这一篇的比较简单,因为EX的编辑器有一个很方便的节点,如果没有ex的话请下载一个ex版本的luaSTG或者看下一篇文章.
那么这个节点是什么呢,对了,就是我们最爱的一件丝滑!(



嗯(

首先是和子弹事件组有关的东西.

打开luaSTG,然后点左上角的Create a new project,选single stage,然后点browse选择你要存放的路径.


你先定义一个自定义子弹,然后在on create(init)插♂入一个task(create task)(被跟我说你不知道怎么定义,在哪定义(除了stage里都可以放))

别跟我说没有class,你看看是不是选的single stage


然后找到左箭头还有一个x(set value to)节点,在Task里

第一个一般都是self,可以不用改

第二个是你需要变化的哪个值

第三个是...变化到哪个值也不准确,和下面的valuemode有关

第四个是变化时间

第五个是变化模式,NORMAL是线性的,ACC是加速,DCC是减速,ACC_DCC是先加速后减速

第六个相当于当前帧

第七个,和第三个有很大的关系,假设TargetValue是3,如果这个是MODE_SET(变化到)的话,那_speed就会变成3,MODE_ADD(加)的话,_speed会加3(如果想减就输负数),MODE_MUL(乘),_speed会乘3.


然后就是第二个的具体意思了


x是子弹的x坐标(这一点就比cs要好(()
y是子弹的y坐标

rot是子弹的朝向(不是子弹的子弹速度方向)

omiga是子弹的自转,设为多少那子弹的每帧增加的朝向就是那么多

vx是子弹x方向的速度大小

vy是子弹y方向的速度大小

这两个组成矢量就是子弹的速度(包括大小和方向)

ax,ay是子弹x,y方向的加速度大小

hscale,vscale是子弹的宽比,高比(注意:只改变这个值不会改变子弹的判定大小)

a,b是子弹判定的长,宽(注意单位是像素,如果想要成倍的扩大请把ValueMode改为MODE_MUL)

pause我还真不知道(

_angle就是子弹速度方向

_speed是子弹速度

用这个节点能实现大部分的子弹事件组的功能,然后就是剩下部分的说明了

生命,嗯,LuaSTG里并没有生命这个东西,所以要实现这个,需要再在那个on init里插一个task节点,然后这样↓

那个wait也在Task里,wait的值就是子弹的生命,然后如果想把消弹效果关掉,就把这个Trigger event改成false

类型.LuaSTG里是把类型和颜色分开了的(就像cs2.0),然后子弹的类型和颜色是可以直接选中这个自定义子弹的on create(init)改

点style右边的三个点的效果
点color右边的三个点的效果

然后如果想改子弹的类型和颜色的话,需要用Bullet里的

change bullet's style and color(就是那个蓝棱弹,红星弹,绿札弹图标的)

wait相当于当前帧

然后是子弹的RGB,这个也可以用那个一键丝滑,R,G,B的分别对应_r,_g,_b,不透明度是_a(这个_a是从0~255,0是完全透明,255是不透明)

然后是子弹的加速度和加速度方向,上面那个ax,ay可能有些难理解,反正你知道ax=子弹加速度大小*cos(子弹加速度方向),ay=子弹加速度大小*sin(子弹加速度方向)就行了.

横比纵比在LuaSTG里没有,需要自己实现

如果想要关闭雾化效果需要像我这么写

这个白色的东西在General里

消弹效果上面写了

高光效果需要用到一个Object里的节点

为了让cs人能够看懂,我没有说这个东西也能改子弹的A,R,G,B

把Blend mode改成mul+add就行了(那里有一个下拉的箭头,有很多混合模式,只需要选这个mul+add就行了),如果留空就是不高光

拖影需要用到Effects里的那个smear,直接插on create(init)里就行了,不过这个拖影和cs里的拖影有亿点不一样()
出屏即消...严格上LuaSTG里没有现成的(但是你可以实现一个),但是有一个self.bound,改为true,他出屏,就,不会消失(
无敌状态可以改在on create(init)里的Destroyable,改为true就不会被自机消弹



........

接下来是发射器事件组.

由于LuaSTG并没有发射器这么个东西,所以,实际上,你基本上在任何地方都能发射子弹(

比如说,最简单的,在stage里带的那个task里.

........

(啊好难解释啊,让我先缕一缕)

如果想要实现发射器的话...

先讲讲如何实现发射器的基本属性吧.

首先,我们要用到task里的 task repeat(就是那个带沙漏的循环标志的东西)

啊啊啊我不知道起始和持续怎么解释(

然后是发射,首先呢,我们要创建子弹,先找到创建子弹的节点(在Bullet里,那个多了个加号的星星)


选中你给你子弹起的那个名字,然后点ok
position就是发射子弹的x,y坐标

半径和角度有关,暂且不提

然后是条数....条数需要用到循环

嗯(

(那些不要真的写了汉字了,这只是一个比较直观的表示而已)

嗯....可以这么理解,但是.....(我个人)感觉.....

然后就是半径了,只需要在创建子弹的节点的position里这么写:

x坐标+半径*cos(a+半径方向),y坐标+半径*sin(a+半径方向)

对了,LuaSTG的角度和crazystorm的是有区别的,比如说LuaSTG的90度,就是crazystorm的270度,反正luaSTG是顺时针从0°~360°,cs是逆时针

然后,大概就是最难理解的地方了:

就是这个parameter

这个parameter,是很多萌新的噩梦其实是很难理解的(?),你看到子弹的on create(init)里也有一个parameter,而你可以在这里面加参数,比如说n.m.s.l名字是无所谓的,你想取什么就取什么


这是准备传参数

.....其实这一段完全没必要,因为我写的又sb又不知道该怎么说,如果想要了解的更深的话,可以看看我前面那几个教程,还有一位巨巨巨佬小炎(B站ID:高冷的二胡)写的LuaSTG专栏教程,还有另一位巨巨巨佬吃药图书做的视频教程,目前都是很基础的,


如果说你们看不懂我写的这一篇也没办法,毕竟这一篇实际上也是随便水水的((

嗯,随便水水的()


给crazystorm人看的LuaSTG教程(大嘘)的评论 (共 条)

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