cocos2d-xna:如果使用从精灵继承的类的实例,则不会绘制精灵
本文关键字:精灵 实例 绘制 继承 如果 cocos2d-xna | 更新日期: 2023-09-27 17:55:17
我有一个基于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);
如果我使用 line 1 并注释掉第 2 行,则不会显示 mySprite 1。否则 - 如果mySprite是CCSprite的一个实例 - 它工作得很好。
这个问题的根源可能是什么?
你不是用你自己的精灵类来调用 CCsprite 的构造函数。
Sprite:CCSprite{
public Sprite():base()
{
//blabla
}
}
base() 正在调用 CCSprite 的构造函数来继承你继承的类如果要传递参数,请执行以下操作:
Sprite:CCSprite{
public Sprite(string imgpath):base(imgpath)
{
//blabla
}
}
现在我已经通过构造器传递了一个字符串。