Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# cocos2d xna:如果使用从sprite继承的类的实例,则不会绘制sprite_C#_Xna_Cocos2d X For Xna - Fatal编程技术网

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

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

我有一个基于cocos2dxna和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);
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在屏幕外渲染。=)