主题:RPG的地图问题
if007
[专家分:650] 发布于 2006-09-29 19:59:00
不知大家有没有玩过大航海时代2呢?
刚学windows编程不久,昨天花了一个晚上独立写完了个俄罗斯方块游戏,这让我兴奋不已.于是斗胆想试试模拟大航海时代2...可我完全没学过游戏编程,第一个问题就我困扰了...
在RPG中,大地图是实际上一开始就以整一副图存在的,然后每次以主角在大地图上的坐标点绘制一定范围的画面,还是说,大地图是由N张图片构成的,然后每次主角行走时调用相关的图片显示?
(例如说大航海时代里,开船那个环节)
谢谢大家.
回复列表 (共7个回复)
沙发
WinWing [专家分:3450] 发布于 2006-09-29 22:52:00
建议下一步学习用DirectX编程
板凳
if007 [专家分:650] 发布于 2006-09-30 03:48:00
嗯,谢谢.
3 楼
wwjxjj [专家分:760] 发布于 2006-09-30 10:06:00
两种方法都有.要看情况.
第一种即是地图的滚屏算法.第二种是地图拼凑法,即从一张元件图上根据需要读入不同的地图元件(地图块),拼凑成一整屏地图.一般元件图上每个元件16*16个像素大小.
两种方法都有利弊:第一种优点是代码简单,程序执行快,缺点是地图越大耗的内存越多而且发布的程序很大.特别是做RPG类的大地图时强烈不建议使用此法.第二种则与之相反,而且便于根据地图块来统一设置地形.
4 楼
if007 [专家分:650] 发布于 2006-09-30 16:48:00
十分感谢.
还想请教一些问题, 它在主游戏的switch语句里是按什么分类的呢? 是按进程判断事件,还是按场景,还是...
另外,正规的RPG游戏的他的事件触发因素是什么呢?
我编了这样一个类:
事件类.是否发生(游戏进程, 地图, 人物){...}
来判断事件的是否触发.
可是我觉得不太对劲, RPG的事件那些多, 这样判断不是量挺大的,而且整个游戏的事件代码都堆在一块了,挺怪的...我是以人,地图,事件来分成类的.他们的组合决定了游戏进程. 但我这么分好像每个类的规模也大了些吧...
但正规的RPG的是怎么分类的呢?
另外,那些有一定智慧的NPC是专门分成一个类写的,还是全部只是作为主函数的一个流程控制进行的?
5 楼
wwjxjj [专家分:760] 发布于 2006-10-17 08:08:00
不好意思,这个我倒不知道还没写过.有谁知道的吗?
6 楼
oil [专家分:320] 发布于 2006-11-14 20:23:00
楼主分析的真好,我也有这样的问题。
如果我发问,肯定没有楼主问的有水平。
7 楼
小小C [专家分:4570] 发布于 2006-11-14 23:53:00
看你是什么类型的RPG了,大航海时代2是用3D引擎开发的,而一般的2D斜45角RPG像暗黑,就采用的TILE贴图方式,就是一块块拼接起来的,每一块是地图数组里的一个元素,每一块有几个标志,比如说有陷阱,被技能,魔法作用等等,当角色走到那一块时,确发事件,游戏会有几个循环,比如说画地图TILE的循环,刷怪的循环等等
小弟不才,只写了一个地图编辑器,您可以去http://mysticc.go1.icpcn.com/index.html 看看吧
我来回复