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

简单(菜)的LuaSTG教程4:简单的自定义子弹

2019-10-27 10:48 作者:SSWTLZZ  | 我要投稿

啊啊啊啊啊

好久没更新了呢

作为补偿,就多更几个吧(大概

好了,废话不多说,进入正题

用久了simple bullet,你会发现这个东西其实有很多限制

比如说只能匀(变)速,角度也不能突变

那如果想做到这样该怎么做呢?

哎,就要用到自定义子弹了

就是这个

这个圈上的五角星,是定义一个子弹(define bullet),右边的是创建定义子弹

这个定义的东西是除了乱七八糟的init里和task和回调函数里都能放(反正记住能放黑文件夹里就行了)

第一排是子弹的名字,第二排是难度(就是在子弹名字后面加一个难度,比如说bullet1:Lunatic)

选中下面的on create,左边会显示这个:

从上往下分别是变量,子弹样式,颜色,在发射点停留(?),是否可被摧毁

然后呢,你可以把task以及unit里面的东西等等放在on create里面(除了前两个)

然后创建方法呢,就是点那个带加号的星星

选中你要创建的子弹,然后点ok(如果你加了难度,那就必须放到那个难度里去)

然后创建出来


欸这个子弹怎么不动啊?

那是因为你什么都没设置,所以他没动

那怎么设置呢?

就要用到General里的code了

输进去要输入的东西,然后点ok

还记得(task) repeat怎么用吗?

要放在create task里,

那么,这一坨的意思就是,每帧执行一次,自身(self)的X坐标(x)增加三

self.x可以理解为自身的x坐标

然后看起来的效果就是一个速度为三,角度为0度的红色鳞弹

这个的效果是,子弹以v的速度射出,角度为a

想必你也看到了on create的括号里的两个变量

就是在这个parameter里输变量

为了让你们更看的懂,我把变量名改成了velocity和angle

还记得simple bullet的开花弹怎么做吗?

这个就和simple bullet的开花弹同理.(图中的angle为a那就是开花弹了

哎呀报错了

是什么原因呢?

上面写了,是第十四行出问题了,那就用上面的搜索

哦,原来是这个code里的变量名没改回来

咳咳,请把第二行改成self.y=self.y+velocity*sin(angle)

然后呢,你发现朝向全是往左的

只要在这个循环里加个self.rot=angle,就行了(rot代表的是朝向,即子弹朝向等于角度)

或者也可以在on create下加个self.navi=true,

这个等于true了之后,就会自动根据位移来计算角度(是这么说的吗)

然后呢,其实这个self.x=self.x+.....可以简化为self.vx=.....

self.vy同理


like this

emmm,这个还能更简便,就是用Unit里的set velocity

这是最简单的

然后呢,弄个子弹拐弯的例子好了

Aim to player就是自机狙,Set rotation就是子弹角度和朝向相同

每帧朝向加一,所以角度也加一



emmm,这一期是个开头,之后会说更多的自定义子弹的例子

简单(菜)的LuaSTG教程4:简单的自定义子弹的评论 (共 条)

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