赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 0 |
最后登录 | 2020-7-8 |
在线时间 | 5 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 60
- 在线时间
- 5 小时
- 注册时间
- 2020-5-18
- 帖子
- 11
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本人在学习RPGmakerMV的过程中,设立了一个敌人AI事件,目标是希望通过对与玩家的距离判断,进行不同的行动,
然而在实现过程中出现了标题中的两个问题。接下来我会详细说明,希望大佬们能够指出我逻辑中的纰漏或能为我指教更好的实现方式。
为了能够计算玩家与敌人事件的距离,我进行了如下算法:(变量编号省去了)
·变量操作: 玩家_位置X(变量)= 玩家 的 地图X
·变量操作: 玩家_位置Y(变量)= 玩家 的 地图Y
·变量操作: 敌人_位置X(变量)= 敌人 的 地图X
·变量操作: 敌人_位置Y(变量)= 敌人 的 地图Y
·变量操作:变量1 = 玩家_位置X(变量)
·变量操作:变量2 = 玩家_位置Y(变量)
·变量操作:变量1 -= 敌人_位置X(变量)
·变量操作:变量2 -= 敌人_位置Y(变量)
·变量操作:变量1 *= 变量1
·变量操作:变量2 *= 变量2
·变量操作:距离的平方(变量) = 变量1
·变量操作:距离的平方(变量) += 变量2
将这部分设为公共事件:计算距离平方。
==================================分割线==========================================
在设置的进行距离判定的事件,对距离的平方进行判定:
设置事件位置:本事件,({敌人_位置X},{敌人_位置Y})
·变量操作: 敌人_位置X(变量)= 敌人 的 地图X
·变量操作: 敌人_位置Y(变量)= 敌人 的 地图Y
·公共事件:计算距离平方
·如果: 距离的平方 《=9
·开关操作: 追逐= ON
:否则
·开关操作: 追逐= OFF
·
:结束
==================================分割线==========================================
而在敌人的事件页里,第一页则是设置了最基本的行进路线,出现条件为玩家,触发条件为并行处理。
并设置了这么一个逻辑
·如果 : 追逐 为 ON
·独立开关操作: A= ON
·
:结束
·
·如果 : 追逐 为 OFF
·独立开关操作: A= OFF
·
:结束
·
==================================分割线==========================================
第二页则是在出现条件为 独立开关 A, 触发条件为 事件接触,移动方式改为 接近玩家
在这样的事件页编辑下,实现了接近敌人后会追过来,但是也表现出了两个问题:
第一,在玩家远离后,敌人事件仍会持续的接近玩家,我的目的是希望能够在距离<=A的时候追上来,大于A了,就不追了,恢复原本的行动,哪怕是随机移动,都可以。
第二,则是之后我在设置距离大于A小于等于B的时候发现,事件会变成独立开关B发生时的事件。
因此我的问题是:在这样的需求下,我应该如何设置事件的逻辑,
其一是能保证玩家在相应的距离里能够触发敌人不同的开关事件页。
其二是在玩家接近敌人并离开相关的距离后,即,相对距离足够远而不会触发任何敌人事件的情况下,如何让敌人事件恢复原本的移动方式,或直接改为随机移动?
问题写的比较冗长,刚学习了不到一个月,中文说明文档的内容则太过微观,,没有js经验,有点难搞。。。希望社区大佬能够给予帮助或建议,
提前谢谢大家了
|
|