网页功能: 加入收藏 设为首页 网站搜索  
从横扫千军谈游戏制作技术之一 地图篇
发表日期:2006-09-03作者:[转贴] 出处:  

序:
横扫千军是一款很好的游戏.本人在以前玩的时候曾经研究过它的一些技术.
现呈给大家,共同探讨.

从横扫千军谈游戏制作技术之一____地图篇

横扫千军的地图是很特别的,它不同与一般的块拼地图.也不同与图片地图.(因为不知专业的叫它什么,我就这么叫吧, :) .)
什么是块拼地图?就是指用各个小块的图片(每一块是一个地形块)组合成一个大地图的形式.如帝国.
什么是图片地图?就是指用一个图片代表地图,在这个图片上划分成一格格的地形块.如二战特种兵.
但,横扫不是这样!
它的地图虽然也是由大图片组成的.但不是一个大图片,而是由多个大图片组成.每个大图片都划分成16*16的地形块,再把大图片组合在一起就形成地图了.
这种地图的优点是:多个大图片自然会比多个小图片要美观,而且真实.我想是即时战略类游戏中地图方面最美观的了.
缺点么,游戏引擎难写,但是如果要达到这种质量,难点是值得的.

那么,这种地图的引擎有哪些相关技术呢?
一.行走算法怎么做?怎么样知道人物在哪一个地形块上呢?根据人物的位置先算出他在哪一个大地图块上,再算出在大地图块上的哪个小地形块上,就可以了。也不算难是么?但是若要行走得真实好看一点就不能一块块的走,我们以前作的游戏就是一块块走的,太难看,一抖一抖的。这就涉及到地形块多大合适的问题。所以说,研究地图的时候不能单纯只研究地图。整个引擎都是相关联的。:)
因此,每个小地形块应比人物所占的地形块小,即:一个人物占多个小地形块。在横扫千军中大概是4*4个。说大概是因为一个块是16象素,一个人物却占70象素90象素不等(这个问题在人物行走篇会讲)。走的时候,是这样的:走之前占A的16个位置,走之后占B的16个位置,这是向右走(口代表不占位置,田代表占位置)。
口田田田田口 口口田田田田
口田田田田口 口口田田田田
口田田田田口 口口田田田田
口田田田田口 口口田田田田
(A) (B)
只有这样才可以真实一些,不然一移动就是几十象素,就会有跳跃的感觉。我看红警也是这种技术。还过,横扫千军不是一地形块一地形块移动的。它的移动让我觉得"残酷"!!!!步兵是一象素一象素移动的!!!骑兵是三象素三象素移动的!!!怎么会?我开始也不相信。但事实就是这样!怎么做的?你先想想吧。这个问题将在行走算法中讲,毕竟这一章只是讲地图的。哈!
二、地图显示技术。不难,只要算一下在屏幕上应显示哪几个大地图块就行了,横扫的大地图块多为256*256象素,所以最多只要9个(3*3)。
小地图(缩略图)显示技术。我原以为是把大地图块用Blt的缩放方法显示在小地图上(我现在就是这么用的,慢一点),但不是这样,横扫在地图制作时就已经把大地图用缩略图的方式进行了缩放,并放入地图文件中。很奇怪是吧?但这种技术很好的解决了缩略图的显示问题。在地图不是非常之大时是完全可行的。

这种地图技术的未来发展:若作超级大地图就可用这种技术,可节省不少内存空间。只要100个大地图块就可以拼出整个地图。而只占很少的空间。一个大地图块相当于16*16个小地图块的数据。

另外,还有一种地图类似于矢量地图。下次会谈。

 

我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 从横扫千军谈游戏制作技术之一 地图篇
本类热点文章
  浅谈网络游戏的设计——服务器端编程(1)
  使用C++和Directx开发GUI(一)
  网络游戏制作技术(四)—— 服务器内存..
  游戏框架设计Ⅰ—— 游戏中的事件机制
  游戏结构
  网络游戏任务系统的构想
  无限大地图的实现
  网络游戏制作技术(一)
  网络游戏制作技术(三)—— 线程池处理..
  网络游戏制作技术(二)—— 消息打包处..
  游戏引擎中的通用编程技术(一)
  介绍飞行模拟游戏的制作方法
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2024 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00363