当前位置:主页 > 诛仙私服发布网 >

建造外国行星管的实用指南

更新时间:2019-05-27 13:45
此博文最初出现在此处的Harbour Games devblog上。优先级

我们为Terminus工作的第一段代码是我们认为最困难的部分:管网。

确定技术要求,管道寻路,施工和与建筑物整合的限制和实施占用了Terminus相当长的准备时间。一旦我们真正让管子有效地工作了! C我们对其他元素(如三维模型,声音效果和逻辑代码)更有信心,所有这些元素以前都以某种形式完成,或者在技术上不复杂或困难。

我们必须开始工作的第一件事是寻路系统,毕竟我们怎么知道管子应该放在3d空间里?我们简要地考虑了一个固定尺寸的管道部件,类似于在原始前哨站中建造管道或者如何在Alpha Centauri中使用道路,虽然这对于地形高度差异有限的游戏来说可能相当不错但我们想要更自然看看我们的行星地形,所以我们花时间实现更复杂的功能。

A *寻路

我们使用流行的A * Pathfinding技术来实现基于节点的网格图,导引头/目标系统。下面是从Terminus地形中获取的一个网格图的直观表示。不同颜色的区域代表了任何其他网络无法访问的不同网络(请注意网络之间的空白)。这实际上意味着管子将无法从这些网络区域之一找到另一个网络区域,两者之间的空隙空间将阻止产生合法路径,因此不允许构造管道。有效节点和空洞之间的区别是角度的陡度。

(点击放大)

当通过点击建筑物的一个气闸开始管道施工请求时,我们立即开始检查鼠标位置(光线投射以击中地形的任何部分/网格图形在它下面所以我们有游戏空间中的3d参考)并将其与管的起始位置(在这种情况下为气闸)进行比较。然后,我们在游戏引擎的每一帧更新中运行A * Seeker Pathfinder来寻找从我们的开始(气

闸)到我们结束的合法路径(光线照射的鼠标位置)。如果路径查找器在网格图中找到合法路径,那么我们构造管。

(下图:绿色寻路线的横截面和构造在其上方的管道)

管道施工

管本身是程序生成的,并且创建一个新的,完整的,低多边形的网格,并且每帧至少对其进行一次程序性纹理,这确保了玩家将始终能够准确地看到管位置的准确表示。管道结构一步一步遵循这个过程:

获取Vector3位置数组,详细说明A * Pathfinding导引头产生的合法路线(Vector3s代表X,Y和Z坐标,它们为我们的3d空间提供了独特的位置)为Pathfinder提供给我们的每个Vector3坐标部署一个4顶点,2维方格。 (每个Vector3精确对应于网格图中上述节点之一的位置)在沿着Pathfinding位置行进时,记录每个顶点在方块中的位置,直到它到达目的地。(在做3时)确定寻路位置中任何两个坐标之间的角度差是否足够大,以至于我们需要执行“转动”。如果我们确实需要执行转弯,那么4顶点切片会切割一个角,从点#3添加更多来自我们阵列的顶点坐标。获取由我们的4顶点切片给出的完整顶点位置数组,然后系统地在每个顶点之间构造三角形,直到整个管具有顶点和三角形(给我们形状和表面)。在完成的管网的每个部分上应用我们的纹理,使用不同的纹理,用于管网的 turn 部分,这些部分具有纹理,看起来像在公共汽车或飞机装载门上经常看到的灵活的 cordion 连接。如果鼠标位置移动,则销毁管并重建。每帧重复至少一次,直到玩家点击放置管。

在那里,我打赌你从来没有想过一个小管子会如此复杂呃?

“Terminus”是一款面向PC,Mac和L

inux开发的太空殖民模拟游戏。终点站在Kickstarter上寻求众筹,直到10月18日。

本文网址:http://www.huayi.tv/zxsffbw/20190527/94.html 欢迎转载!

相关文章:



全文检索
Copyright © 2019 - 2020 诛仙sf http://www.huayi.tv All Rights Reserved