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

好像复杂点的LuaSTG教程3.1:3D背景

2020-06-26 08:00 作者:SSWTLZZ  | 我要投稿

(这些玩意都是我看教程懂的,如果想要更详细的教程还是建议加群)

心心念念心心念念.......

终于要写这个东西了,真是激动呢111()^&*%^#$


好了废话不多说开始

这一期我们要用代码(?)开始讲了

新建一个.lua文件,输入XXX(随便什么名字)=Class(object)

我用notepad++的(

这就有点像编辑器里定义了一个obj之类的

想必这六个函数你们都知道是什么意思

然后,类似的,在你写的那下面写上这些东西:

啊对了,那几个函数的括号里不用写self(

我觉得你们应该也看得懂(

然后开始写吧!

LuaSTG内置了3个坐标系:world,3d,ui

world渲染的就是正常的游戏画面(怎么说....就是打飞机的画面(),渲染的东西永远在ui的下面(?)

ui渲染的就是打飞机旁边部分的ui

3d就是3d,有什么好说的


上一次讲了render4V,这个东西就是拿来制作3D背景的(RenderTexture也可以)

用法可以去看上一次的专栏

那么首先呢,我们想要在init 里写一堆Set3D


Set3D('eye',0,2,1)

Set3D('at',0,0,1)

Set3D('up',0,3,1)

Set3D('z',0.1,24)

Set3D('fovy',0.7)

Set3D('fog',5,10,Color(255,255,255,255))

哇这是什么东西啊看起来好复杂啊

且听我慢慢道来(

eye,就是摄像头的位置,下面三个参数为x,y,z
at,就是摄像头看向的位置,也是xyz
up,就是摄像头头顶的位置,也是xyz

(看的方向和摄像头的位置都是由你自己决定的,我习惯以z轴为前方)

z就是....嗯...'切割的长度'?大概就是如果你渲染的图片的一部分的z超过了这个范围,那部分就会被切割掉
fovy就是,可以理解为视角...想象一下mc速度效果视角变大,缓慢效果视角变小(((
值小于圆周率(3.14就行啦)大于0

fog是雾的效果,上面的'5,10'是雾的范围,从5开始到10越来越浓,Color是lstg给的,四个参数分别为透明度(Alpha),红(Red),绿(Green),绿(Blue)

还要在init里写上这一句:background.init(self,false) 用来设置背景的默认属性


上面不是讲了三个坐标系吗,那么怎么在这三个坐标系中切换呢?

这就要用到SetViewMode了

在render下面写SetViewMode('3d') (括号可以省略)

然后呢,在可以在这下面写Render4V了

写成这个样子,然后在试试打开编辑器,用general里的patch那个.lua文件,然后在关卡里New(XXX(上文中你起的名字))试试?

en,运行后就会出现一个

右边的那个东西要在关卡里写个New(camera_setter)

Render4V('white',-0.5,0,1.5

,0.5,0,1.5

,0.5,0,0.5

,-0.5,0,0.5)

好了,那么我们多渲染几张,然后换个视角?

for循环的用法还请自己去百度(
camera_setter真的很有用

换个贴图+多渲染几张:

然后怎么让它动起来呢?

看东方原作的背景,是不是摄像头一直往前动,然后渲染的很长很长?

那要z裁剪有什么用(

实际上是背景在倒退,然后倒退了一段长度就'瞬移'回来

具体做法是这样:

效果:

差不多就是这样(


好像复杂点的LuaSTG教程3.1:3D背景的评论 (共 条)

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