Подтвердить что ты не робот

Cocos2d-xna: sprite не выводится, если используется экземпляр класса, унаследованного от спрайта

У меня есть игровой проект, построенный на 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);

Если я использую строку 1 и закомментирую строку 2, mySprite 1 не отображается. В противном случае - если mySprite является экземпляром CCSprite - он работает хорошо.

Что может быть источником этой проблемы?

4b9b3361

Ответ 1

Вы не вызываете конструктор CCsprite со своим собственным классом Sprite.

Sprite:CCSprite{ 
   public Sprite():base()
   {
    //blabla
   }
}

base() вызывает конструктор CCSprite класс, который вы наследуете если вы хотите пройти через параметры, сделайте что-то вроде этого:

Sprite:CCSprite{ 
       public Sprite(string imgpath):base(imgpath)
       {
        //blabla
       }
    }

Теперь я передал строку через конструкторы.