回 帖 发 新 帖 刷新版面

主题:RPG的地图问题

不知大家有没有玩过大航海时代2呢?

刚学windows编程不久,昨天花了一个晚上独立写完了个俄罗斯方块游戏,这让我兴奋不已.于是斗胆想试试模拟大航海时代2...可我完全没学过游戏编程,第一个问题就我困扰了...

在RPG中,大地图是实际上一开始就以整一副图存在的,然后每次以主角在大地图上的坐标点绘制一定范围的画面,还是说,大地图是由N张图片构成的,然后每次主角行走时调用相关的图片显示?
(例如说大航海时代里,开船那个环节)

谢谢大家.

回复列表 (共7个回复)

沙发

建议下一步学习用DirectX编程

板凳

嗯,谢谢.

3 楼

两种方法都有.要看情况.
第一种即是地图的滚屏算法.第二种是地图拼凑法,即从一张元件图上根据需要读入不同的地图元件(地图块),拼凑成一整屏地图.一般元件图上每个元件16*16个像素大小.
两种方法都有利弊:第一种优点是代码简单,程序执行快,缺点是地图越大耗的内存越多而且发布的程序很大.特别是做RPG类的大地图时强烈不建议使用此法.第二种则与之相反,而且便于根据地图块来统一设置地形.

4 楼

十分感谢.

还想请教一些问题, 它在主游戏的switch语句里是按什么分类的呢? 是按进程判断事件,还是按场景,还是...
另外,正规的RPG游戏的他的事件触发因素是什么呢?
我编了这样一个类:

事件类.是否发生(游戏进程, 地图, 人物){...}

来判断事件的是否触发.
可是我觉得不太对劲, RPG的事件那些多, 这样判断不是量挺大的,而且整个游戏的事件代码都堆在一块了,挺怪的...我是以人,地图,事件来分成类的.他们的组合决定了游戏进程. 但我这么分好像每个类的规模也大了些吧...

但正规的RPG的是怎么分类的呢?

另外,那些有一定智慧的NPC是专门分成一个类写的,还是全部只是作为主函数的一个流程控制进行的?

5 楼

不好意思,这个我倒不知道还没写过.有谁知道的吗?

6 楼

楼主分析的真好,我也有这样的问题。
如果我发问,肯定没有楼主问的有水平。

7 楼

看你是什么类型的RPG了,大航海时代2是用3D引擎开发的,而一般的2D斜45角RPG像暗黑,就采用的TILE贴图方式,就是一块块拼接起来的,每一块是地图数组里的一个元素,每一块有几个标志,比如说有陷阱,被技能,魔法作用等等,当角色走到那一块时,确发事件,游戏会有几个循环,比如说画地图TILE的循环,刷怪的循环等等

小弟不才,只写了一个地图编辑器,您可以去http://mysticc.go1.icpcn.com/index.html  看看吧

我来回复

您尚未登录,请登录后再回复。点此登录或注册