AS3、Flixel、およびコンポーネント/エンティティ システム (はい、すべて同時に) に足を踏み入れていますが、エンティティ (FlxSprite のサブクラス) が正しく追加されていません (つまり、まったく追加されていません)。問題のある行を突き止めるのに 2 時間ほど費やしました。私がそれを取り除くと、ゲームの残りの部分は喜んで一気飲みします.
このコードの何が問題になっていますか?
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]
ます。グーグルに基づいて、これは有効であり、意図したとおりに機能するはずです。
コンソールからの出力に基づいて、それはその行の後に救済されているだけであり、完全にクラッシュしているわけではありません. どうしたの?詳細については、リクエストに応じて喜んで提供します。