Попытка выяснить иерархию классов в моей игре XNA - PullRequest
0 голосов
/ 09 октября 2010

Я все еще новичок в разработке игр на XNA и использовании классов на C #, но я хочу начать полусадежный игровой проект, в котором я могу учиться без одноразовых проектов.

Я хочу разделить мою игру на классы. Например, класс основной игры, класс игрока (я хочу двух игроков, и они сражаются друг против друга), класс уровня (для рисования мира) и, возможно, позже такие вещи, как класс усиления и сетевой класс, чтобы я мог сделать все мультиплеер.

Но я не знаю лучшего способа начать использовать такие классы в игре XNA. Должен ли я сделать класс, как это:

namespace MyGame
{
    class Player : MyGame
    {
        // whatever
    }
}

или как это:

namespace MyGame
{
    class Player : Microsoft.Xna.Framework.Game
    {
        // whatever
    }
}

Я хочу, чтобы у каждого класса было что-то похожее на методы Initialize(), Update() и Draw(), и я буду использовать spriteBatch и GraphicsDeviceManager из моего основного класса игры, передаваемого этим классам ... но я также не знаю, как лучше всего передать их, или даже если бы я должен был передать их за то, чтобы сделать новые в самих классах.

Любая помощь очень ценится. Спасибо.

1 Ответ

3 голосов
/ 09 октября 2010

Вы, вероятно, хотите иметь иерархию GameObjects, чтобы у вас, игроков, ваших врагов и т. Д. Был бы GameObject в качестве корня.Только основной класс Game на самом деле будет производным от Microsoft.Xna.Framework.Game.

Если вы будете следовать модели GameComponents Xna, у вас будет базовый GameObject, производный от DrawableGameComponent .Конечно, логика игроков и врагов может быть извлечена в классы Controller, которые вы можете затем добавить в GameObject, чтобы дать каждому объекту свое игровое поведение.

Я бы посоветовал вам начать с некоторых игровых примеров.на XNA Creators Club , в данный момент он не работает, но я уверен, что он скоро будет.Используйте эти примеры, чтобы помочь вам сформулировать структуру игры.

Возможно, вы также захотите ознакомиться с Учебниками Римера по XNA .Это довольно хорошее введение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...