Zoharwolf

这里是一个宅腐基程序员的随笔集合,偶尔可能会有自制游戏的相关讯息

大地图循环+五交通工具2.0

自己前阵子不小心翻出了自己N年前做的那个通用性极差、做起来极其麻烦的纯事件版大地图循环+五交通工具,对自己当年无比的耐心和奇葩的想法感到十分的……那啥。
于是乎自己就想用正常人类的方式把这个再做一次看看。

范例主要包括两个部分:
1、循环大地图: 就是和VX里一样的那种,走不到尽头的大地图。
2、五交通工具:
       a.浅水船,只能在河流中通行;还包括一个携带船,可以带在身上随时使用。来自FF2
       b.海水船,只能在海中通行;
       c.企业号:可以从船变成飞船,再从飞船变成船,但是不能在陆地着陆; 来自FF3
       d.深海螺号:可以在天上高速飞行,可以潜海,在海里通行。来自FF3
       e.巨鲸号:有内部视角的飞船。可以翻过山飞行。虽然最初出现在FF3,但是这名字却来自FF4……

 

 

 

范例工程:
猛击下载

一些杂七杂八的说明(建议运行看一下范例的效果,再看下面的说明……这些说明基本在范例里也有):
1. 循环大地图可能有bug,但是我懒得再往深研究了。目前的建议是:不要在大地图最边缘的一圈上面设置任何可见的事件。可能有触发事件bug。不要让NPC穿越地图边缘,可能也有bug。而非循环大地图的地图,则和以前一样,没有这些顾虑。
2. 脚本里加★的地方是改动的地方。BigMap_Vehicle和“各种配置”这两个脚本是我新加的。如果想移到自己的游戏里用,前者不用改,后者应该需要改。
3. 大地图注意事项:地图尺寸要够大,最起码得超出一个屏幕的大小……不然也不叫大地图了。注意大地图左边缘和右边缘要能接在一起,上边缘和下边缘也是。这是美工的问题了……
4.想让某张地图变成循环大地图,必须在“各种配置”里把大地图的ID加到$bigMapId这个数组里。加进去之后,地图的详细信息存在$vehOnMap这个哈希表里,比如只需要用$vehOnMap[4],就可以访问4号大地图的信息。
5. 如果有深海螺号的话,就必须有一个水下的地图。用addSubMap(id)这个方法就可以配置了。水下地图的注意事项,很明显……它必须和大地图本身是完全同步的,大小尺寸,图块坐标位置等。不然实际效果会变得无比销魂。
6.再就是设置地形。我一共划了4种地形。是用地形标记来区分的。存在数组里。
    浅水地形——terrain_river 浅水船可通行,海船不可通行。其他飞船可通行。但是深海螺在海底时,不能从浅水地形中上浮。
    海地形——terrain_sea 浅水船不可通行,海船可通行。其他飞船可通行。深海螺在海底时,可以从海地形中上浮。
    山地形——terrain_mount 只有巨鲸号可通行。深海螺号在海底也不可通行。
    森林地形——terrain_forest 不可以在此降落的地形。人物不乘坐交通工具时可以通行。
具体这些对应了哪些地形标记,可以在“各种配置”里改。
7. 如果飞船的下面有一个事件,无论这个事件可不可见,都无法着陆。之所有设计成这样是因为……我暂时想不出来其他更好的设计了……有好主意的话,可以留言告诉俺一声。
8. 当主角得到一个交通工具时,需要将它初始化。用事件脚本:$big_map.changeVeh(事件id, x, y),这样在大地图的某个位置上,就会视一个事件为交通工具。存档读档地图切换时,系统都会自动处理它,再就不用操心了。想把这个交通工具永远删除,也要用这个方法。只不过把x或y设成负数就OK了。
9. 当人物乘上交通工具时,一定要记得加上两行事件脚本:
    $big_map.status = xxx
    $big_map.usingEvent = xxx
第一个是指目前的乘降状态。-1是什么也不乘,0是浅水船,1是海船,2是企业号 3是深海螺 4是海底 5是巨鲸。乘上时务必记得改这个值。不然脚本也没办法知道你坐上的是什么东西,下来时就不用改了,脚本里会自动改回-1。
而$big_map.usingEvent这个,是用来记录你作为交通工具使用的事件是哪个。看一下左上角的事件ID,填进去就可以。
10. 当角色在大地图上乘坐交通工具时,地图上的全部事件仍然是可以触发的。如果你开着一个飞空艇却钻进一个城镇里,就非常斯巴达了(更斯巴达的是之后还会出现恶性bug……)所以记得要给大地图上的全部事件加上一个条件分歧的判断:$big_map.status==-1 只有什么东西也不乘的时候,才会触发事件。也可以以此作一些特殊的设计。比如只有巨鲸号能进入的城镇,就是$big_map.status==5
11. 携带船是用物品控制的。当主角拥有某一物品时,就可以用携带船了。物品ID也在“各种配置”里设置。而企业号可否飞空,深海螺可否潜海,这些都是用开关控制的,看一下就知道了。很简单。开关号也可以自己配置



再就是我今天发现好像偶尔会出现坐标记录上的bug……我改了改之后,就再也没出现了。因为是偶尔出现的bug,所以我也不知道是真的消灭了,还是仍然存在……= =
如果你发现任何其他bug,欢迎报告。感谢。

评论
热度(2)

© Zoharwolf / Powered by LOFTER