//用户操控设置
UserCrtlModID=2
UserCrtlModMode=1
UserCrtlModViewMode=0
UserCrtlModMoveSensi=0.2
UserCrtlModFBMoveSpeed=0.5
UserCrtlModLRMoveSpeed=0.3
UserCrtlModFastMoveSpeed=1.0
UserCrtlModRotSpeed=4.0
UserCrtlModJumpStrgn=0.6
…
①用户追踪设置
上一节里,我们已经设置了玩家包络模型的位置,那么游戏后续对玩家的移动操作,都将通过控制包络进行,因此用户的视点必须一直追踪着这个玩家包络模型。UserViewTraceMode设置是否开启用户视点追踪,这里开启;UserViewTraceModID设置需要追踪的PT物体序号,玩家包络模型的PT物体序号为2;UserViewTraceMaxYOffset、UserViewTraceMinYOffset、UserViewTraceMaxYAngle、UserViewTraceMinYAngle用于设置追踪物体时,用户视点的旋转限制范围(例如不能视点不能低于玩家模型脚面 详细设置方法见应用篇)。
②用户追踪视点设置
设置了追踪物体后,我们必须指定视点的位置,那么后续都从这个视点追踪物体。UserViewTraceFarPosX、UserViewTraceFarPosY和UserViewTraceFarPosZ设置用户的远视点,UserViewTracePosX、UserViewTracePosY、UserViewTracePosZ设置用户近视点,如图2.6所示。图中方块为一个视点,将从用户视点看向远处视点。不断调整这里的跟踪视点,可以设置不同的玩家游戏视角。

图2.6 用户视点追踪位置示意图
③用户操控设置
对玩家的移动等控制,将在这一步进行设置。UserCrtlModID设置需要控制的PT物体,这里同样是玩家的包络模型,即2号PT物体。UserCrtlModMode设置操控方式,在光核引擎中,预置了两种控制方法,这里选择1号操控方式,即wsad前后左右平移,空格跳跃,按住左shift+wasd快速移动,鼠标控制旋转;UserCrtlModViewMode设置鼠标上下移动时,玩家近视点的移动规则;UserCrtlModFBMoveSpeed设置玩家前进后退最大移动速度;UserCrtlModLRMoveSpeed设置玩家左右平移最大移动速度;UserCrtlModFastMoveSpeed设置玩家跑步最快移动速度;UserCrtlModRotSpeed设置玩家鼠标转向的灵敏度;UserCrtlModJumpStrgn设置玩家的跳跃力量;UserCrtlModMoveSensi设置玩家操控时,从静止到达到最大速度的灵敏度(操控设置的详细方法见应用篇)。
2.4 其他场景设置项
剩余的场景信息项包络重力设置、光标设置、退出结束设置、视线范围等。在[SceneMod1]中继续添加如下配置信息:
...
UserEscapeToExit=1
UserHideCursor=1
RenderNearPlane=0.1
ViewDis=2000.0
ColldCheckDis=2000.0
TrafficElementInfo=model\\LearnLC3D\\Chapter1\\td.ini
TrafficRoadInfo=model\\LearnLC3D\\Chapter1\\ld.ini
SceneDrawMode=0
LightCompDis= 10000
SceneGravityX=0.0
SceneGravityY=-135.0
SceneGravityZ=0.0
…
UserEscapeToExit设置是否按ESC退出引擎,这里启用。对于正式的游戏,一般需要开发者编写加载程序与游戏初始化界面,在退出时也可以执行更复杂的退出步骤,此时我们仅仅简单的允许玩家按下esc键退出引擎结束游戏(游戏初始化界面开发方法见应用篇)。UserHideCursor设置引擎开启后自动隐藏光标,对于一般游戏是需要的。RenderNearPlane设置渲染近平面距离(详细见应用篇)。ViewDis设置玩家的视线范围,视线范围内的物体将被绘制(详细见应用篇)。ColldCheckDis设置碰撞检测距离,在此碰撞检测距离内的物理物体将互相执行碰撞检测(详细见应用篇)。TrafficElementInfo与TrafficRoadInfo用于设置自动生成模型的方法,此功能本游戏不需要。SceneDrawMode设置场景的绘制模式,0为真实绘制模式(详细见应用篇)。LightCompDis用于设置点光和聚光的光照技术范围(详细见应用篇)。SceneGravityX、SceneGravityY和SceneGravityZ用于设置场景的重力矢量,此矢量模越大重力越强。
到此,玩家将可以控制这个玩家包络模型在场景中通过wasd进行漫游。我们可以双击本书配送的学习资料包中的游戏启动器,运行配置好的场景。游戏启动器运行起来将出现如下图2.7所示的两个窗口。“My First Game”窗口将显示游戏画面,系统信息窗口将显示游戏的信息,可以看到启动器没有检测到游戏在运行。点击主窗口的开始游戏,将自动按照StartUpInfo.ini文件中的SceneNConfig路径读取场景配置文件,并加载场景,同时加载过程的进度将在系统信息中显示。注意:此游戏启动测试器为简单测试器,当遇到加载出错情况时,请关闭此启动器,排查错误后,再启动此测试器。


图2.7 游戏启动测试器窗口
点击开始游戏后,场景被加载,加载完毕后,可以看到玩家包络受重力作用下落到地面上,通过wasd和鼠标可以操作玩家,效果如图2.8所示。

图2.8 操作玩家包络的游戏测试
本节演示视频:
光核引擎游戏开发从入门到精通[基础原理版][3]演示视频
本节学习资料:

