设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 844|回复: 16
打印 上一主题 下一主题

[有事请教] 请问有什么脚本能直接停掉气泡动画吗

[复制链接]

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
跳转到指定楼层
1
发表于 2024-1-1 22:01:02 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
就是如图这个气泡图标
想做一个站在走廊边上面对栏杆会自动显示一个感叹号然后按确定就会跳出去传送到另一个地图的效果(就是类似于从二楼走廊直接跳出去跳到一楼的那种感觉),到这里我都会做。但是如果在气泡动画结束前移动的话,那个气泡动画还会继续显示,就会感觉很奇怪。我想的是,能不能在那附近的地上放上能直接截停这个气泡的脚本,只要玩家朝向不是面向栏杆就直接停止气泡动画。
或者说,请问各位大佬有没有其他好方法
谢谢诸位

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
17
 楼主| 发表于 2024-1-7 18:19:15 | 只看该作者
shiroin 发表于 2024-1-6 23:45
你使用了两个嵌套的IF-ELSE条件句式,只有玩家位置和18号事件位置重合时,才可能进行第二个IF-ELS句式的 ...

我好像懂了,谢谢大佬
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5420
在线时间
1228 小时
注册时间
2016-12-6
帖子
389
16
发表于 2024-1-6 23:45:28 | 只看该作者
本帖最后由 shiroin 于 2024-1-6 23:49 编辑
xuexizhanghao 发表于 2024-1-6 21:08
试了一下,按确定跳出去的那个气泡顺利截停了,但是移动/转身截停那个还是停不了。
我是不是太蠢了{:5_15 ...


你使用了两个嵌套的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

通过这个新的并行事件去监听玩家离开事件区域的后续情况,理论上可以防止因为无法触发脚本而没有及时消除表情气泡

photo_2024-01-06_23-47-52.jpg (125.17 KB, 下载次数: 32)

photo_2024-01-06_23-47-52.jpg
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
15
 楼主| 发表于 2024-1-6 21:08:30 | 只看该作者
shiroin 发表于 2024-1-4 23:21
"气泡立即消失",这个是RPG maker原生代码没有设计的功能,所以想要实现这个功能,估计要动底层代码了

...

试了一下,按确定跳出去的那个气泡顺利截停了,但是移动/转身截停那个还是停不了。
我是不是太蠢了
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
14
 楼主| 发表于 2024-1-6 17:29:20 | 只看该作者
shiroin 发表于 2024-1-6 17:05
因为这个脚本效果是在气泡没有正常完整播放前就开始执行endBalloon()内容,和表情气泡相关的代码或插件有 ...

谢谢
我没安那个,其实说来惭愧我还没搞懂插件
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5420
在线时间
1228 小时
注册时间
2016-12-6
帖子
389
13
发表于 2024-1-6 17:05:54 | 只看该作者
xuexizhanghao 发表于 2024-1-6 16:07
请问,这个隐患……指什么

因为这个脚本效果是在气泡没有正常完整播放前就开始执行endBalloon()内容,和表情气泡相关的代码或插件有可能会因此产生报错,如果你没有使用和表情气泡有关的插件,应该是不会有什么问题
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
12
 楼主| 发表于 2024-1-6 16:07:08 | 只看该作者
shiroin 发表于 2024-1-4 23:21
"气泡立即消失",这个是RPG maker原生代码没有设计的功能,所以想要实现这个功能,估计要动底层代码了

...

请问,这个隐患……指什么
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5420
在线时间
1228 小时
注册时间
2016-12-6
帖子
389
11
发表于 2024-1-4 23:21:53 | 只看该作者
xuexizhanghao 发表于 2024-1-4 22:38
像这样吗?
试了一下,不等60帧在显示气泡图标加等待好像也行
但是我还是有一个问题,我希望只有在面对 ...

"气泡立即消失",这个是RPG maker原生代码没有设计的功能,所以想要实现这个功能,估计要动底层代码了

比如直接遍历找到玩家身上的气泡然后直接执行endBalloon()函数,但有没有隐患我就不清楚了,通常是不建议直接动底层逻辑的,你需要的话可以试试看
直接脚本输入下列代码:
var spriteset = SceneManager._scene._spriteset;
if (spriteset) {
    spriteset._characterSprites.forEach(function(sprite) {
        if (sprite._character === $gamePlayer) {
            if (sprite._balloonSprite) {
                sprite.endBalloon();
            }
        }
    });
}
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
10
 楼主| 发表于 2024-1-4 22:38:11 | 只看该作者
shiroin 发表于 2024-1-4 09:21
你的并行事件没有设置等待时间,每帧都在自动处理你的事件页内容
所以你只能看到一个空的气泡,气泡没有 ...


像这样吗?
试了一下,不等60帧在显示气泡图标加等待好像也行
但是我还是有一个问题,我希望只有在面对栏杆的时候才会有气泡,面向别处或者跳跃的过程中都没有气泡。现在这个写法依旧会顶着气泡到处走(我的意思是比如我面对栏杆触发气泡动画后,在动画播放完成之前像其他地方移动了,现在这个写法——当然这是从一开始我发帖时就存在的问题——现在这个写法就算离开了这个位置也会继续把气泡动画播放完。我想要的是如果我转身往别的方向走了或者按确定跳出去了,这个气泡会立刻消失)
请问……怎么做才好
谢谢
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5420
在线时间
1228 小时
注册时间
2016-12-6
帖子
389
9
发表于 2024-1-4 09:21:08 | 只看该作者
xuexizhanghao 发表于 2024-1-3 23:07
我不知道我理解的对不对,是这个意思吗?

但是这样站在那里(事件018那个格子)时头上只会出一个空白的 ...

你的并行事件没有设置等待时间,每帧都在自动处理你的事件页内容
所以你只能看到一个空的气泡,气泡没有播放完就马上开始从头播放
以及你没有追加事件触发的时机,按你这个写法,就算没有走到指定地点也是会出现气泡的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 02:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表