【发布时间】:2015-01-20 08:51:29
【问题描述】:
有没有办法从控制台调用模块或函数?例如一个创建工人爬行的模块,从控制台调用 my_module.add_creep?
【问题讨论】:
标签: screeps
有没有办法从控制台调用模块或函数?例如一个创建工人爬行的模块,从控制台调用 my_module.add_creep?
【问题讨论】:
标签: screeps
其他人已经提到了 require 和分配给游戏的使用,但您也可以通过分配给全局来创建新的顶级命令和对象。
主循环:
global.rebuildMemory = () => console.log('Memory rebuilt.');
global.Commands = require('consoleCommands');
然后从控制台:
rebuildMemory();
Commands.printRoomReport('W3N4');
【讨论】:
我今天才明白这一点。但是有一种很好的方法可以从控制台访问您的方法
只需将您的方法导入游戏对象(在您的脚本中)
Game.creepManager = require('CreepManager');
您现在可以通过键入来使用控制台
Game.creepManager.yourFunctionHere();
【讨论】:
对于给定的示例,使用require('my_module').add_creep();
require 函数返回分配给该模块中 module.exports 的任何内容。
@cho: require 不必返回函数。它宁可返回一个函数,因为该模块包含一个函数。如果模块分配为follow module.export = {test: 'test'},follow sn -p require('that_module') 将返回{test: 'test'} 等...
注意:不确定其他人是否有此问题,但有时控制台根本没有返回结果... 在这种情况下,请尝试重新加载页面。只需确保游戏是'在执行命令时不暂停...
【讨论】:
require 函数返回一个函数,因此您可以像这样在控制台中直接调用它:
require('harvester')(Game.creeps.harvester1);
【讨论】:
我已经成功地从控制台调用了 lodash 模块,方法是像 require('lodash').pluck(characters, 'name') 这样调用它。不确定它是否适用于用户创建的模块。
【讨论】: