12

Cocos2D XNA と MonoGame で構築されたゲーム プロジェクトがあります。CCSprite クラスにカスタム ロジックを少し追加したかったので、CCSprite を継承するクラスを作成しました。ダミーの自動プロパティを追加してこのクラスを使用しようとしましたが、何らかの理由でカスタム スプライト クラスのインスタンスとして作成されたスプライトがレイヤーに表示されませんが、CCSprite クラスのインスタンスであるスプライトは完全に問題ありません。

コードは次のようになります。

public class Sprite: CCSprite {
  public string SomeProp {get; set;}
}
...
line1: var mySprite1 = new Sprite("texture.png");
line2: var mySprite1 = new CCSprite("texture.png");
AddChild(mySprite1);

line1 を使用して 2 行目をコメントアウトすると、mySprite 1 は表示されません。それ以外の場合 - mySprite が CCSprite のインスタンスである場合 - うまく機能します。

この問題の原因は何ですか?

4

1 に答える 1

4

独自の Sprite クラスで CCsprite のコンストラクターを呼び出していません。

Sprite:CCSprite{ 
   public Sprite():base()
   {
    //blabla
   }
}

base() は、パラメーターを通過させたい場合に継承するクラスの CCSprite のコンストラクターを呼び出してから、次のようにします。

Sprite:CCSprite{ 
       public Sprite(string imgpath):base(imgpath)
       {
        //blabla
       }
    }

これで、コンストラクターを介して文字列を渡しました。

于 2015-04-27T19:34:04.363 に答える