我正在使用游戏循环,并尝试通过根据游戏状态为Function类型的变量分配各种方法来处理用户输入。
我将一个名为InputState1的已定义函数分配给我的Function变量inputFunction:
var inputFunction:Function = InputState1;
其中InputState1为:
public function InputState1():void
{
// input logic
}
并在游戏循环的更新方法中调用inputFunction:
override protected function update(timeDelta:Number):void
{
trace(inputFunction);
inputFunction();
}
当我跟踪inputFunction时,它返回一个空函数。
是否可以将命名函数分配给函数变量?如果可以,我将如何正确地执行此操作?
解决方案:我正在调用我的函数变量调用方法,而不是只调用函数。它现在有效。
答案 0 :(得分:0)
我从你的论证中理解的是你想要一个游戏状态被识别并根据它行动,你总是可以定义一个持有游戏状态值的字符串,该值随游戏状态的变化而更新,并使函数返回该字符串,(或直接comapre该字符串与定义的状态)
var gameState:String="initial";
override protected function update(timeDelta:Number,gameState:String):void
{
gameState="newstate"; //depending upon your condition requirement
}
if(gameState="requredState"){
//do required stuff
}
答案 1 :(得分:0)
问题是我正在调用我的函数变量的调用方法,而不是只调用函数。它现在有效,我已经将我的问题中的代码编辑为正确的版本。