易语言如何制作3D游戏,抓紧时间。或者可以修改的源代码。之后就分了。资金紧张。

3D游戏:哆啦a梦版小优传奇,源码太长...你可以在百度搜索易语言3D游戏找到,我可以提供至少3W字的代码。如果要做一个游戏,40M要一个半月以上。我支持你,但是你需要一个引擎来启动它。

版本2

子程序绘制

。局部变量I

。局部变量Colort,十进制类型。

。局部变量F1,十进制类型。

。局部变量F2,十进制类型。

表面渲染1。开始渲染()

' //////////////////////////////////////////////////////

天空。Render()'渲染气氛

天空。启用雾化(真)

' //////////////////////////////////////////////////////

如果为真(地图信息。HeightX ≠ 0)

地形。Render()'渲染地面

如果真的结束了。

' //////////////////////////////////////////////////////

渲染背景模型

如果为真(地图信息。网格数> 0)

计数循环头(地图信息。梅什努姆岛)

如果为true (tempmesh [I])。over = false和TempMesh [i]。种类≠ 2)

模型[i]。渲染()

如果真的结束了。

。计数周期尾部()

如果真的结束了。

' //////////////////////////////////////////////////////

' //////////////////////////////////////////////////////

画出角色部分

。如果为真(是否打开动态阴影)

场景。完成阴影渲染()'绘制阴影。

如果真的结束了。

NPC[1]. body . Rendering(false)

。变量循环头(2,映射信息。npcnum+1,1,I)

如果为真(Npc [i].启用和Npc [i]。种类≠ 6)

colort = 1-Npc[I]. act num 1÷5000

如果为真(颜色> 1)

Colort = 1

如果真的结束了。

。如果为真(颜色< 0)

Colort = 0

如果真的结束了。

如果属实(NPC[我]。状态= 4)

材料。设置不透明度(正常,彩色)

如果真的结束了。

Npc [i].Body. Rendering(假)

如果属实(NPC[我]。状态= 4)

材料。设置不透明度(正常,1)

如果真的结束了。

如果真的结束了。

。可变循环尾()

人员[当前人员+1]。渲染(假)

If IfPart Then GE。'绘制辉光'绘制武器辉光。

' //////////////////////////////////////////////////////

' //////////////////////////////////////////////////////

' //////////////////////////////////////////////////////

绘制最小网格

如果为真(是否启用水资源())

水r .渲染()

如果真的结束了。

如果为真(地图信息。最小值> 0)

计数循环头(地图信息。最小,我)

如果为真(临时迷你模型[i])。数量≠ 0)

迷你模型[i]。渲染()

如果真的结束了。

。计数周期尾部()

如果真的结束了。

。如果为真(ModelActor [14])。Enable())

ModelActor [14]。渲染(真)

如果真的结束了。

。如果为真(ModelActor [15])。Enable())

ModelActor [15]。渲染(真)

如果真的结束了。

天空。启用雾化(假)

绘制前景透明模型。

如果为真(地图信息。网格数> 0)

计数循环头(地图信息。梅什努姆岛)

。如果为true (TempMesh [i])。结束)

模型[i]。渲染()

如果真的结束了。

。计数周期尾部()

如果真的结束了。

' //////////////////////////////////////////////////////

。如果是真的(水。是否启用())

水。Render()'绘制水面。

如果真的结束了。

' //////////////////////////////////////////////////////

。计数循环头(地图信息。NPC号码+1,I)

。如果真(Npc [i].Shadow .是否启用()以及是否开启动态阴影=假)

' Npc [i].Shadow. Render()'绘制阴影。

如果真的结束了。

。如果属实(NPC[我]。情感> 0)

Npc [i].EmotionM. Rendering()

NPC[我]。情感= NPC[我]。情绪持续时间

如果真的结束了。

。计数周期尾部()

' //////////////////////////////////////////////////////

。如果是真的(五线谱轨迹特效。是否启用())

五线谱轨迹特效。渲染()

如果真的结束了。

。计数循环头(# effective nim max+1,I)

。如果为真(有效anim [I].启用)

有效的动画[I]。身体。渲染(真)

如果真的结束了。

。计数周期尾部()

如果为真(是否打开粒子)

场景。“渲染所有粒子系统(真)”绘制粒子。

如果真的结束了。

屏幕绘图。绘制一个三维矩形(Vecc [1],Vecc [2],-1)

表面渲染1。结束渲染()

' //////////////////////////////////////////////////////

' //////////////////////////////////////////////////////

' //////////////////////////////////////////////////////

' //////////////////////////////////////////////////////

。如果为真(是否全屏泛光灯)

。If(模糊)

特效。设置光晕参数(创建E色(1,1,1,1),flood × 0.1,柔化)。

否则。

特效。设置发光参数(创建E颜色(1,1,1,1),泛光和柔化)

如果结束了

发光表面渲染。BLT表面渲染(表面渲染1)

特效。更新发光()

如果真的结束了。

' //////////////////////////////////////////////////////

最终的画面

引擎。清晰屏幕(模糊)'清晰屏幕

。If(是否全屏泛光灯)

= 0.5

否则。

GammaA = 1

如果结束了

如果为真(模糊)

γa =γa×0.2

如果真的结束了。

屏幕绘图。开始2D绘图()

屏幕绘图。绘制纹理(表面渲染1。取纹理索引(),0,0,屏幕宽度,屏幕高度,RGBA (Gammar,Gammag,Gammab,Gammaa))'来渲染主屏幕。

。如果为真(切换屏幕计数器> 0)

切换屏幕计数器=切换屏幕计数器+持续时间

如果为真(切换屏幕计数器> 1500)

开关屏幕计数器= 1500

如果真的结束了。

。If(是否全屏泛光灯)

屏幕绘图。绘制纹理(RS2。取纹理索引(),0,0,屏幕宽度,屏幕高度,RGBA (gammar,gammag,gammab,(1-开关屏幕计数器÷ 1500) × 0.5)。

否则。

屏幕绘图。绘制纹理(RS2。取纹理索引(),0,0,屏幕宽度,屏幕高度,RGBA (gammar,gammag,gammab,1-开关屏幕计数器÷ 1500)。

如果结束了

。如果为真(切换屏幕计数器= 1500)