我被 AS3、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]
. 根据谷歌搜索,这是有效的,应该按预期工作。
根据控制台的输出,它只是在那条线之后放弃——并没有完全崩溃。这是怎么回事?我们很乐意应要求提供更多详细信息。