【发布时间】:2019-04-05 14:59:25
【问题描述】:
我们正在使用 blockly 来控制移相器游戏,它的设置是为了可以使用游戏中的自定义变量进行 if 语句,例如游戏中元素的速度或方向。
我们遇到的问题是,当变量被添加到 if 语句(从工具箱中拖出)时,块读取这些变量的值,而不是它们在运行时的值,这可能已经被物理改变了游戏引擎。
例如:
var code = speed;
这将返回从工具箱将块添加到代码堆栈时的速度值。我们希望它在代码实际运行时返回速度值。
我们尝试为它们创建自定义解释器,但似乎这些解释器的目的只是为了运行自定义函数,而不是返回自定义变量。
我们尝试对变量使用 getter 函数并在定义函数中返回它
Blockly.JavaScript['speed'] = function(block) {
var code = function() {return getSpeed();}
return [code, Blockly.JavaScript.ORDER_NONE];
};
它根本不触发,语句根本不评估......或者至少,看起来是这样的
我们如何才能在运行时以块方式读取变量的值?
【问题讨论】:
标签: javascript phaser-framework blockly google-blockly