cocos2d-xna:如果使用从sprite继承的类的实例,则不会绘制sprite

Dar*_*eny 12 c# xna cocos2d-x-for-xna

我有一个基于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);
Run Code Online (Sandbox Code Playgroud)

如果我使用line1并注释掉第2行,则不会显示mySprite 1.否则 - 如果mySprite是CCSprite的一个实例 - 它运行良好.

可能是这个问题的根源是什么?

小智 4

您没有使用自己的 Sprite 类调用 CCsprite 的构造函数。

Sprite:CCSprite{ 
   public Sprite():base()
   {
    //blabla
   }
}
Run Code Online (Sandbox Code Playgroud)

如果您想传递参数,则 base() 正在调用您继承的类的 CCSprite 的构造函数,然后执行以下操作:

Sprite:CCSprite{ 
       public Sprite(string imgpath):base(imgpath)
       {
        //blabla
       }
    }
Run Code Online (Sandbox Code Playgroud)

现在我已经通过构造函数传递了一个字符串。