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

用LuaSTG制作自己的单关2:魔改现有自机(上)

2021-02-18 16:15 作者:SSWTLZZ  | 我要投稿

在心里斗争了许久,终于下定决心要做这个的教程了(

这一期我们讲讲如何魔改自机,对,魔改自机
制作想要的自机的话,之后吧(

下面的教程就默认你的LuaSTG版本是ex+以上了.

我们先到存放自机的路径(game/Library/players)

我这里有四个自机,你们应该只有三个,就是前三个(灵魔咲)
我们解压灵梦的包,应该会看见里面有个Thlib文件夹和一个叫__init__.lua的玩意
lua脚本我就默认你们能打开了,打开之后你会看到

如果改了文件夹和自机脚本文件的名字的话就要修改一下上面一行
如果改了自机本身相关的东西,就要修改下面这个函数的参数了
这个函数的参数的意义就是:

VScode太好用了

等一下改自机的时候会解释.
然后我们找到reimu.lua,并打开.

这个reimu_player就是上面所说的[全局中的自机类名],如果修改了,那前面的__init__.lua也要修改

加载资源之类的都写在了init里
这些资源相关的函数我实在是懒得讲了,如果不知道意思的话可以去看看我前面写的那个redner的教程

当然这里其实也会放几张图片啦(

好了,这么一大堆图片(

然后我们再来看看自机的init里有啥

player_class.init(self) 这条一定要加,不然可能会出bug
self.hspeed是自机的高速时速度,self.lspeed是自机的低速时速度,不过这里没有低速,因为低速已经默认了,为2
self.imgs是为行走图服务的
self.A,self.B是玩家的判定大小

然后下面这个If的是玩家行走图相关,可以不改

讲到这里我们来说说自机行走图的格式
其实和原版是一样的(

第一行是静止时,第二行是右移 第三行是左移
我没试过如果一行不是8个帧图会怎样,不过假如允许8个以上的话,那下面那两个for i=1,24 do就要改成 for i=1,3*行数(别真填"行数"这两个字进去了) do
实际上我用的ex+0.82b没有双自机,所以其实只要写个else下面的那个就行了(嘛不用管了)

然后呢,下面的self.slist就是玩家的子机的位置

玩家的子机并不是用几个obj做的,实际上都是玩家那一个obj的
玩家也是obj,所以如果你kill player或者怎样的你的游戏就会崩掉
这个slist的格式是:
0P~4P(多了一个我也不知道为啥)


希望你们能懂(
子机1子机2这些都是我临时起的名字(
然后下面的那个anglelist...这个是灵梦特有的...有点不想解释
这个anglelist和上面的slist有点类似,我换一种写法可能就会更好理解

同样也是0P1P2P3P4P,不过这里的是高速诱导的角度
然后再讲讲关于自机的一些参数
self.slowlock 这个值为true的时候玩家会锁定在低速
self.dialog 这个值为true的时候玩家无法射击
self.slow 为0或1,高速时为1,低速时为0
self.supportx,self.supporty 相当于玩家的坐标,不过这个会稍微延迟一下再到达玩家的坐标
怎么说呢,有点像惯性(?)
然后下面会看到的
self.sp[i][1],self.sp[i][2] 这个是子机相对于自机的坐标
因为我们讲的是魔改,所以坐标之类的一般都不用改,self.supportx+self.sp[i][1],self.supporty+self.sp[i][2]
self.nextshoot 是一个数值,射击间隔,单位是帧
self.protect 为数值,单位是帧(360就是6秒)
self.collect_line 收点线高度(y)

啊,懒得讲了(
现在是(上),那之后就会讲(下)
(下的话应该就讲玩家的射击和符卡之类的)

.......




md手冻住了打字好难

用LuaSTG制作自己的单关2:魔改现有自机(上)的评论 (共 条)

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