好像复杂点的LuaSTG教程3.1:3D背景
(这些玩意都是我看教程懂的,如果想要更详细的教程还是建议加群)
心心念念心心念念.......
终于要写这个东西了,真是激动呢111()^&*%^#$
好了废话不多说开始
这一期我们要用代码(?)开始讲了
新建一个.lua文件,输入XXX(随便什么名字)=Class(object)

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

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

我觉得你们应该也看得懂(
然后开始写吧!
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,运行后就会出现一个

Render4V('white',-0.5,0,1.5
,0.5,0,1.5
,0.5,0,0.5
,-0.5,0,0.5)
好了,那么我们多渲染几张,然后换个视角?


换个贴图+多渲染几张:

然后怎么让它动起来呢?
看东方原作的背景,是不是摄像头一直往前动,然后渲染的很长很长?
那要z裁剪有什么用(
实际上是背景在倒退,然后倒退了一段长度就'瞬移'回来
具体做法是这样:

效果:

差不多就是这样(