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

Project1

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

[有事请教] 请问如何在变量改变时自动为另一个变量赋值

[复制链接]

Lv2.观梦者

梦石
0
星屑
447
在线时间
51 小时
注册时间
2019-10-17
帖子
29
跳转到指定楼层
1
发表于 2023-7-27 09:16:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10星屑
我的目标是当某一变量A改变时,根据一个公式,自动推出另一个变量B的值。

现在的设计思路是,设定了一个公共事件,在里面根据A的值以及公式,给B赋值。然后我想问问能不能通过某种方式,让A的数值变动时,自动启动公共事件。

如果上面这个思路不可行,请问是否还有别的方法,请各位大佬赐教。

最佳答案

查看完整内容

Game_Variables.prototype.setValue = function(variableId, value) { if (variableId > 0 && variableId < $dataSystem.variables.length) { if (typeof value === 'number') { value = Math.floor(value); } this._data[variableId] = value; if (variableId === 114) this._data[514] = value * 2 - 1; // 本行为新增内容 this.onChange(); } // 本行为 rpg_objec ...

Lv4.逐梦者

梦石
0
星屑
5406
在线时间
387 小时
注册时间
2021-12-4
帖子
408
2
发表于 2023-7-27 09:16:25 | 只看该作者
Game_Variables.prototype.setValue = function(variableId, value) {
    if (variableId > 0 && variableId < $dataSystem.variables.length) {
        if (typeof value === 'number') {
            value = Math.floor(value);
        }
        this._data[variableId] = value;
        if (variableId === 114) this._data[514] = value * 2 - 1; // 本行为新增内容
        this.onChange();
    } // 本行为 rpg_objects.js 第570行
}; // 可以像这样,每当114号变量变化时,就把514号变量绑定为114号变量的2倍减1。
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6930
在线时间
708 小时
注册时间
2021-3-5
帖子
814
3
发表于 2023-7-27 10:33:19 | 只看该作者
楼主会在很多很多地方或者不可预期的地方给A变量赋值吗?如果没有的话,直接就在A变化的地方给B赋值是否更简单一点呢?

如果上述操作无法实现,那么可以设定一个并行的公共事件,每过5帧就把A的值给B,不过不建议这样做,因为会显得非常的不decent
如果楼主想要更好一点的办法,那最好描述一下到底A和B是干嘛的,发点截图之类的
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
417
在线时间
28 小时
注册时间
2023-6-28
帖子
5
4
发表于 2023-7-27 17:13:56 | 只看该作者
如果你的变量A不需要重置,那么就用不到B,直接调用A就可以了。
如果A达到某个条件重置,那可以用条件分歧设置A达到某个条件,B=A,然后A=0。
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
447
在线时间
51 小时
注册时间
2019-10-17
帖子
29
5
 楼主| 发表于 2023-8-8 13:12:07 | 只看该作者
RyanYe 发表于 2023-7-27 10:33
楼主会在很多很多地方或者不可预期的地方给A变量赋值吗?如果没有的话,直接就在A变化的地方给B赋值是否更 ...

抱歉最近太忙了没有及时回帖,我的目标是:
当A改变,根据公式使B发生变动。因为我把B放进了伤害公式,所以将导致伤害值发生变动。
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
447
在线时间
51 小时
注册时间
2019-10-17
帖子
29
6
 楼主| 发表于 2023-8-8 13:14:29 | 只看该作者
小秋橙 发表于 2023-7-27 11:47
Game_Variables.prototype.setValue = function(variableId, value) {
    if (variableId > 0 && variable ...

感谢大佬回答,但请问可以用这种方式同时触发其他事件吗?

考虑到当A的值变动时,除了要启动公式使B变动,还会触发其他一系列事件。因为被触发的内容较多,所以才打算用公共事件来实现。

点评

当然可以了,注意到onChange()是最后执行的啊~  发表于 2023-8-8 22:09
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 05:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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