51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2946|回复: 0
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    慵懒
    2015-1-8 08:46
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2007-11-30 15:52:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    序:
    横扫千军是一款很好的游戏.本人在以前玩的时候曾经研究过它的一些技术.
    现呈给大家,共同探讨.

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

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

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

    这种地图技术的未来发展:若作超级大地图就可用这种技术,可节省不少内存空间。只要100个大地图块就可以拼出整个地图。而只占很少的空间。一个大地图块相当于16*16个小地图块的数据。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-16 09:31 , Processed in 0.069548 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表