Project1

标题: 如何判断主角在某张地图的某个坐标上 [打印本页]

作者: 樱桃丸子aab    时间: 2017-10-16 22:35
标题: 如何判断主角在某张地图的某个坐标上
我想制作一个大地图传送的物品,只有在某些地图的“传送点”可以使用,如何判断主角在某张地图的某个坐标上,谢谢!

作者: 樱桃丸子aab    时间: 2017-10-17 00:59
我自问自答,有没有奖励?变量可以直接取到地图ID和主角XY坐标
作者: hyperzlib    时间: 2017-10-17 08:47
$gameMap.properties.x
作者: SailCat    时间: 2017-10-17 23:46
这个问题还是挺有意义的,记得以前要实现类似于《最终幻想》的存盘点功能:
1. 主角不在存盘点上的时候,某些道具是不可用的,菜单中存盘也是禁止的
2. 主角在存盘点上的时候,道具才会可用,菜单中存盘才被允许
3. 第一次接触某地图上的存盘点,会有声效+弹窗提示,以后的接触只有声效
4. 通常一张地图只有一个存盘点

那个时候脚本不熟悉,而且这个事情用脚本也不好做,最后弄了个纯事件解决:
存盘点,第1页自动执行:变量记忆自己的XY,打开开关[有存盘点]
第2页当[有存盘点]开关为ON时并行处理:
如果角色的XY=自己的XY,则:
  SE
  如独开A为OFF则弹窗,独开A=ON
  允许存盘
  允许使用某些道具($data_items[x].occasion=2)
否则:
  禁止存盘
  禁止使用某些道具($data_items[x].occasion=3)
分歧结束
这样做,存盘点事件本身是可以拷贝粘贴了,但有一个麻烦之处,就是所有剧情或非剧情离开这个场景的地方都需要加一个把[有存盘点]开关关掉的操作

后来尝试维护这个存盘点系统,最后发现实现这个功能其实只需要:
存盘点,第1页[与事件接触]:执行
SE
弹窗处理
变量记忆自己的XY
允许存盘
允许道具使用
打开[在存盘点]开关
第2页[并行处理]-[在存盘点]ON,执行
如果主角XY不等于自己的XY,则:
  清除记忆变量(设为-1,-1或501,501,总之是主角不可能去的位置)
  禁止存盘
  禁止道具使用
  [在存盘点]OFF
分歧结束

这样做,存盘点事件也可以拷贝粘贴,似乎没有什么问题了。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1