⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g10.htm

📁 PC游戏编程
💻 HTM
字号:
<html>
<head>
<title>游戏制作</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
body {  font-size: 14px}
td {  font-size: 14px}
a:active {  text-decoration: none}
a:link {  text-decoration: none}
a:visited {  color: #FFFFFF; text-decoration: none}
a:hover {  text-decoration: underline}
-->
</style>
</head>

<body bgcolor="#e8ffe8">
<br>
<table width="85%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td>行军算法 &nbsp;<br>
      我们在制作&lt;官渡&gt;时没有给士兵以一套完整的行军算法,让它去寻找一条到达目的地最&nbsp;<br>
      近的路线,而在&lt;赤壁&gt;里想做一下尝试。就自制了这样一套算法。首先找到一条直线,然&nbsp;<br>
      后围绕挡住这条直线的障碍物搜索一条可以行走的路线。说起来简单,做起来可很困难。&nbsp;<br>
      这部分代码写了大约有四五个月。 &nbsp;<br>
      当然它也仍然有缺点,比如如果在路上的障碍物内部有空洞,那么就会卡住。但好在它&nbsp;<br>
      的速度还算可以,一百个人同时走路时才会感觉到一点停顿。 &nbsp;<br>
      本来我们打算在&lt;荆州&gt;里有所改变的,我们采用了世界上比较流行的行军算法:A*算法&nbsp;<br>
      。并且为它专门制作了一套底层,使它可以挂在任何一个地图结构里。 &nbsp;<br>
      有关内容请详见March_n.cpp。 &nbsp;<br>
      &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;为什么有数量限制 &nbsp;<br>
      又回到了老生常谈的话题。编程序的人一看就可以知道,对士兵数量进行限止的唯一理&nbsp;<br>
      由就是没有使用链表。的确是我胆小的缘故。我没有在游戏的核心数据结构中使用链表,&nbsp;<br>
      原因很简单,怕出错。我为每个游戏者开了200个单元的空间,也就是说每方游戏者都可&nbsp;<br>
      以制造200个士兵和建筑。我想这个数量应该是够了,因为如果真的每个游戏者都生产出&nbsp;<br>
      这么多数量的单元,游戏也跑不动了。 &nbsp;<br>
      使用数组不仅出错的机会少一些,而且它对于查错也很有帮助。在我们的早期测试版中&nbsp;<br>
      ,我让游戏每隔10轮就自动存一次盘。存盘的内容就是简单的把这些数组内的内容写到文&nbsp;<br>
      件中。如果程序跳出,马上调出存盘很快就会跟踪出错误的位置。后来,在&lt;赤壁&gt;标准版&nbsp;<br>
      发行后,也有玩家反映有异常退出的错误,我就让他们把存盘文件寄给我,我就能很快发&nbsp;<br>
      现问题。如果使用指针链表恐怕就没那么容易了,但也有一个好处。如果玩家玩出一个错&nbsp;<br>
      误,只要他再重新玩很可能这个错误就不出现了。 &nbsp;<br>
      有关内容请详见CBCtrl.cpp。 &nbsp;<br>
      &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;镂空贴图 &nbsp;<br>
      我估计有不少初学编游戏的人都会有这个疑问,如何让一个人出现在地形上而身上没有&nbsp;<br>
      黑边。要知道计算机的显示一般都是以矩形为单位的,一个边界不规则的图形该如何显示&nbsp;<br>
      呢? &nbsp;<br>
      假如我们按点去操作,那么就可以判断如果人的图像上是黑色则跳过去,否则显示到背&nbsp;<br>
      景上。但是谁都知道这样是很慢的。于是我们想到了使用逻辑操作来贴图。我们有一个真&nbsp;<br>
      人的图像,边界是黑色的,我们叫源码。然后我们制作一个掩码,人的内部是黑色的实心&nbsp;<br>
      ,外部是白色。然后我们做两次逻辑操作,先把人的掩码与背景做“与”操作,这样背景&nbsp;<br>
      就被扣出了一个黑色的轮廓,然后把人的源码与背景作“或”操作,人就呆在背景里了。&nbsp;<br>
      &nbsp;<br>
      如果你看到我们的地图编辑器,就会发现我们就是这样做的。这是&lt;官渡&gt;的做法,在编&nbsp;<br>
      写编辑器时我还不会使用DirectDraw呢。但是在DirectDraw环境下,我想大家就可以省事&nbsp;<br>
      很多了,只要一个ColorKey的变量设置,DirectDraw就可以替你完成镂空贴图的操作。 &nbsp;<br>
      从这里你也可以看到我们也许不会一开始就把游戏做好,但只要坚持下去,我们一定会&nbsp;<br>
      越做越好。 &nbsp;<br>
      有关内容请详见DDApi.cpp。 &nbsp;<br>
      &nbsp;<br>
      &nbsp;<br>
      2.5&nbsp;&nbsp;希望 &nbsp;<br>
      &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;有人说即时战略游戏已经过时了,或者已经做到头了。我的观点截然相反。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;我认为它是目前唯一能够胜任大规模集团作战的游戏类型,它所能够带给人的东西我&nbsp;<br>
      们还远远没有做到。我是很喜欢看电影的,尤其是战争电影,那些电影里的场面和效果在&nbsp;<br>
      游戏里出现了么?有,但是还远远不够。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;我承认我们的制作能力与国外的水平还有很大的差距,但是即时战略依然会有它的发&nbsp;<br>
      展。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;比如,即时战略已经开始慢慢向战棋式的战略游戏靠拢,采用多层战略地图,多级控&nbsp;<br>
      制的方式。这就是一个可能的发展方向。即时战略也可以不采用采矿的方式,而利用其它&nbsp;<br>
      (比如经营)方式来获得资源,这也是一个可能的发展方向。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;我总是觉得,制作游戏就是在创造世界,虽然我们的这个世界还无法与真实的世界相&nbsp;<br>
      比。但是,只要我们做了,就会有进步,就会离梦想近一点,也许我等不到那一天,可是&nbsp;<br>
      也许某个看到我的文章的人等得到那一天,这我已经很高兴了。制作游戏的路刚刚开始,&nbsp;<br>
      对于我们而言,我们希望能够继续做下去,可是上帝毕竟是广大的玩家,如果大家不认可&nbsp;<br>
      ,那我们还是趁早改行为好。但我总是有些不死心,总希望能够有人坚持下来,如果这个&nbsp;<br>
      人不是我。我真心地希望能有更多的人了解游戏的制作,了解制作游戏的人,也希望有更&nbsp;<br>
      多的人加入到这个充满了艰辛的事业来。因为美好的明天需要我们去创造,我们为游戏付&nbsp;<br>
      出了很多,它也会同样地回报我们的。 &nbsp;<br>
      &nbsp;<br>
      &nbsp;<br>
      &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;以上内容仅是我个人的观点,如果有任何异议请与我联系,但是我不会与各位争论什&nbsp;<br>
      么,因为只有做才是最重要的。如果有什么问题,也可以来信,但是我可能不会很快或很&nbsp;<br>
      详细地回答,因为我现在正忙于制作新的游戏。 &nbsp;<br>
      &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;我的E-mail地址是liu-gang@263。net。 &nbsp;<br>
      &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;假如你已经整装待发,那么就开始吧,不要犹豫,人的一生只有一次,只要去生活就&nbsp;<br>
      是了。 &nbsp;</td>
  </tr>
</table>
<p align="center">&nbsp;</p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -