C# cocos2d xna:如果使用从sprite继承的类的实例,则不会绘制sprite
我有一个基于cocos2dxna和MonoGame的游戏项目。我想在CCSprite类中添加一点自定义逻辑,所以我创建了一个从CCSprite继承的类。我添加了一个虚拟自动属性并尝试使用该类,但由于某些原因,创建为自定义精灵类实例的精灵不会显示在图层上,而作为CCSprite类实例的精灵则完全正常 代码如下所示:C# cocos2d xna:如果使用从sprite继承的类的实例,则不会绘制sprite,c#,xna,cocos2d-x-for-xna,C#,Xna,Cocos2d X For Xna,我有一个基于cocos2dxna和MonoGame的游戏项目。我想在CCSprite类中添加一点自定义逻辑,所以我创建了一个从CCSprite继承的类。我添加了一个虚拟自动属性并尝试使用该类,但由于某些原因,创建为自定义精灵类实例的精灵不会显示在图层上,而作为CCSprite类实例的精灵则完全正常 代码如下所示: public class Sprite: CCSprite { public string SomeProp {get; set;} } ... line1: var mySpri
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);
Sprite:CCSprite{
public Sprite(string imgpath):base(imgpath)
{
//blabla
}
}
如果使用第1行并注释掉第2行,则不会显示mySprite 1。否则,如果mySprite是CCSprite的一个实例,那么它工作得很好
这个问题的根源是什么?您没有使用自己的Sprite类调用CCsprite的构造函数
Sprite:CCSprite{
public Sprite():base()
{
//blabla
}
}
base()正在调用您继承的类的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);
Sprite:CCSprite{
public Sprite(string imgpath):base(imgpath)
{
//blabla
}
}
现在我已经通过构造函数传递了一个字符串。请发布您的Sprite类实现文件。由于您的评论,我发现可以对AnchorPoint属性进行重写,使Sprite在屏幕外渲染。=)