我有一个基于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的一个实例 - 它运行良好。
这个问题可能是什么原因?
答案 0 :(得分:4)
您没有使用自己的Sprite类调用CCsprite的构造函数。
Sprite:CCSprite{
public Sprite():base()
{
//blabla
}
}
base()正在调用您继承的类CCSprite的构造函数 如果你想传递参数,那么做这样的事情:
Sprite:CCSprite{
public Sprite(string imgpath):base(imgpath)
{
//blabla
}
}
现在我已经通过结构符号传递了一个字符串。