Прилепляем GameComponent.
30-06-2008 13:37
к комментариям - к полной версии
- понравилось!
Компоненты способ обеспечить модульное добавление функционала.
Класс содержит те же методы, что и Game:
public override void Initialize()
public override void Update(GameTime gameTime)
public override void Draw(GameTime gameTime) //DrawableGameComponent
protected override void LoadContent()
protected override void UnloadContent()
Правый щелчёк мышью на проекте в Solution Explorer->add->new item->GameComponent.
Получаем cs файл с компонентом унаследованным от Microsoft.Xna.Framework.GameComponent.
Если компонент должен реализовывать метод Draw, то наследуем его от Microsoft.Xna.Framework.DrawableGameComponent.Для реализации графики нам понадобится сервис возвращающий GraphicsDevice :
IGraphicsDeviceService, добавим экземпляр в наш копонент:
IGraphicsDeviceService graphicsDeviceService;
Теперь в конструктор компонента
public GameComponent1(Game game)
: base(game)
{
}
добавляем
graphicsDeviceService = (IGraphicsDeviceService)game.Services.GetService(typeof(IGraphicsDeviceService));
if (graphicsDeviceService == null)
throw new InvalidOperationException("No graphics device service.");
Реализуем методы в компоненте например: Draw...
Осталось создать экземпляр нашего компонента:
В классе Game:
GameComponent1 MyComponent;
В конструкторе:
MyComponent = new GameComponent1(this);
Components.Add(MyComponent);
Всё при компиляции программы можно увидеть результат работы методов компонента.
Эх коряво написал но ничо дальше опусы получше будут, первый блин комом..
вверх^
к полной версии
понравилось!
в evernote