参考资料: http://www.v-ec.com/dh20156/article.asp?id=123
地图制作方法:
一:以前的做法--二维数组+拼图方式
二:现在的做法--对象列表
方法一原理:
地图和场景前景都制作成一个个大小完全相同的小画片,然后分别将每个画片都编上号(例如,1号代表土地,2号代表小坑,3号代表水,4号代表……),然后便用一个比较大的二维数组来记录地图的信息,其实就是记录一些编号,在游戏初始化的时候就跟据这些编号将那些小画片一块块的拼起来形成最终的地图场景。
资料中没有方法一的例子,我根据其原理的说明,自己写了一个.如下:
图片:
涉及到的知识点有:
数组的遍历;
TABLE方法( oTbody.insertRow(0); oTbody.rows[0].insertCell(0);)
样式的设置,DOM操作...
思考的问题:
1.为什么要用TABLE,和用DIV相比有什么好处?
估计:TABLE布局对各浏览器兼容性好,适合大量的数据元素显示.
2.为什么要为每个TD元素设置行内样式?
估计是为了精确控制每个TD单位元素的背景图片等样式.并且可以方便修改.
方法二原理:
地面是一个二维数组,和前面一样,同样记录一些图片的编号(例如:陆地,水面,空间等),而地面上的物件却是另一个对象列表,它里面记录的是每一个对象所在的 X 轴 和Y 轴的起点坐标,也就是说,每放置一个对象,其实只是在列表中加入了一句话:X起点,Y起点,对象编号。仅此而已。那么,这些东西怎么会变成最终的地图的呢?!在游戏初始化的时候,先将地面那个二维数组存入内存,并找出相应的图片形成地表。接下来就从库里面将相应的对象都复制出来放置于相应的坐标所对应的位置,当然了,这对象也就包括了主角和一些NPC人物。这也就是时下比较流行的地图制作方式了。
方法二实现:
写的很乱,回头再整理吧...