AS3 对象索引导致 Flixel 不当行为 - 此代码有什么问题?



我将脚弄湿AS3,flixel和flixel和组件/实体系统(是的,同时同时),而我的实体(哪个子类Flxsprite)没有被添加正确(即根本不是)。我刚刚花了两个小时钉在有问题的线上。如果我将其删除,那么游戏的其余部分愉快地抓住了。

此代码有什么问题?

public function addComponent(c:Component):void                                       
{                                                                                    
  var type:String = Object(c).constructor.toString();                                
  FlxG.log("type=" + type);                                                          
  this._components[type] = c; // The evil line                                       
  FlxG.log("now type=" + _components[type]);                                         
  c.setData(this);                                                                   
}                                                                                    

components是被用作地图/词典的对象字段。type设置为[class PlayerComponent]。基于谷歌搜索,这是有效的,应该按预期工作。

基于控制台的输出,它只是在那条线之后的保释 - 而不是完全崩溃。这是怎么回事?

很乐意提供更多详细信息。

我不确定 Component-不是我的强项 - 但我确实知道 FlxGroup及其子女(包括 FlxState)具有一种称为 add()的方法,可以将孩子添加到他们中。p>因此,如果您有FlxSprite,则将其添加到更新/绘制的事物链中的正确方法(以flixel为单位)就是使用它;您可以将其直接添加到您的州或国家的孩子。

函数文档:http://flixel.org/docs/org/flixel/flxgroup.html#add()

最新更新