Я изучаю XNA (и вообще C#), и, пытаясь написать собственный маленький прокруткой для обучения, я наткнулся на следующую проблему.Инициализация нестатического класса с помощью переменной texture2d
Уровень построен из плиток, и поскольку я не хочу передавать текстуру на плитку при каждом экземпляре (например, return new Tile(positionVector2, TEXTURE)
), класс должен быть сконструирован с этой текстурой по умолчанию.
Сейчас я просто не могу заставить его работать, я пытался использовать конструктор как это:
public Tile(Vector2 position)
{
this.texture = Platformer03.Texture;
}
где Platformer03
класс игры и текстуры свойство для загруженного мозаичного текстуры. Теперь, поскольку Platformer03
- это класс, а не экземпляр (его не статический), это явно не сработает, но я даже не могу найти экземпляр Platformer03
(его названный game1, но выходит за рамки).
Итак, я уверен, что я делаю все это неправильно, но как я могу заставить класс Tile использовать определенную текстуру 2d для каждого экземпляра?
Пожалуйста, будьте осторожны, хотя вы, вероятно, не можете представить себе более идиотский вопрос, я могу заверить вас, что в течение последних нескольких часов я искал googled и читал, как сумасшедший, чтобы понять это.
Эй, делая переменную texture2d и его свойство static работало, спасибо большое! Что касается класса Platformer03: я считаю класс, но не статичным. Поэтому я хотел бы найти экземпляр класса, называемый «игра». Основной метод The Program.cs' звучит следующим образом: 'используя (игра Platformer03 = новый Platformer03()) { game.Run(); } ' Теперь в соответствии с MSDN, используя« Определяет область, за пределами которой объект или объекты будут удалены ». Вот почему я не могу «увидеть» «игровой» экземпляр Platformer03 в других классах? (Пространство имен одинаково везде) Если да, могу ли я изменить использование? –
Сам класс не должен быть статическим, а только переменной. Затем вы можете получить доступ к статической переменной, не зная экземпляра класса (поскольку он является статичным, то есть он разделяется между всеми экземплярами класса).Вы можете только «видеть» экземпляр объекта, если вы передадите его (в данном случае, вашу переменную 'game'). –
До сих пор я использовал только статические переменные в статических классах, спасибо за расширение моего горизонта (если это фраза вообще) !! : D Теперь все в порядке, спасибо еще раз! –