#c# #class #monogame
#c# #класс #моногейм
Вопрос:
У меня есть Screen
класс, который содержит SpriteBatch
from Monogame . Я хочу получить доступ к SpriteBatch.Draw()
методу без необходимости делать Screen.spriteBatch.Draw()
, но вместо этого:
screen.Draw(sprite, position, color);
Я мог бы сделать это, просто определив методы следующим образом:
class Screen
{
public void Draw(Texture2D texture, Rectangle rect, Color color)
{
spriteBatch.Draw(texture, rect, color);
}
public void Draw(Texture2D texture, Vector2 position, Color color)
{
spriteBatch.Draw(texture, position, color);
}
.... and so on for every other override of SpriteBatch.Draw
}
Но это, очевидно, очень долго, и я бы предпочел не вводить вручную каждое переопределение.
Есть ли более простой способ сделать это?
Комментарии:
1. вы уверены, что абстрагировали функциональность на правильном уровне? Вы дали экрану spritebatch, обычно это означает, что вы хотите, чтобы экран отвечал за использование sprintbatch для рисования чего-либо — например, сцены, сложных движений и т. Д. — А Не просто выражал ту же функциональность, которую использует содержащийся класс.
Ответ №1:
Пусть класс Screen наследуется от SpriteBatch, в коде это будет выглядеть так:
Screen : SpriteBatch