赞 | 22 |
VIP | 0 |
好人卡 | 0 |
积分 | 54 |
经验 | 2379 |
最后登录 | 2024-11-14 |
在线时间 | 1228 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 5420
- 在线时间
- 1228 小时
- 注册时间
- 2016-12-6
- 帖子
- 389
|
本帖最后由 shiroin 于 2024-1-6 23:49 编辑
你使用了两个嵌套的IF-ELSE条件句式,只有玩家位置和18号事件位置重合时,才可能进行第二个IF-ELS句式的判定,这也意味着当玩家离开当前位置,即便你头上顶着气泡,也不会触发消除气泡的脚本
按照你这个写法,只有玩家和事件位置重合,且方向不朝右,才可能触发脚本代码
所以如果你的目的是【玩家离开事件位置时,消除已有的表情气泡】,可以尝试这个事件写法:
玩家进入18号事件位置时,打开特定开关(假设是打开1号开关)
地图上额外放置一个并行事件,只有1号开关打开时才激活,并行事件内容是:
如果:脚本:$gameMap.event(18).x !== $gamePlayer.x || $gameMap.event(18).y !== $gamePlayer.y
脚本:var spriteset = SceneManager._scene._spriteset;
if (spriteset) {
spriteset._characterSprites.forEach(function(sprite) {
if (sprite._character === $gamePlayer) {
if (sprite._balloonSprite) {
sprite.endBalloon();
}
}
});
}
开关操作:1号开关 = OFF
通过这个新的并行事件去监听玩家离开事件区域的后续情况,理论上可以防止因为无法触发脚本而没有及时消除表情气泡 |
|