Тож я нарешті зібрався зіграти з XNA і погукав із створенням 2D гри (у мене є маса мистецьких активів від друга, який розробив її на iOS)
Багато речей, здається, легко зробити і вийти з коробки, однак я залитий натхненим купою речей, оскільки більшість літератури (книги, які я придбав, наприклад) не приділяють 2D надто великої уваги.
Я дуже вдячний за будь-які роз’яснення чи вказівку на додаткову інформацію про наступні завдання:
В чому сенс ігрової служби? Я розумію всю ідіому реєстрації об'єкта як сервісу, щоб будь-який інший GameComponent міг схопити його, однак як це вибити просто зробити його, можливо, загальнодоступним чи статичним? Наприклад, моя книга рекомендувала зареєструвати об'єкт SpriteBatch у класі Game.cs. Я не впевнений, наскільки це бажано просто оприлюднити / статично, оскільки у будь-якому випадку має бути лише один екземпляр гри (одиночний)?
Мене бентежить, коли мені слід успадкувати від GameComponent або RenderableGameComponent. Я намагаюся керуватися дизайном / менеджером / контролером, таким чином, щоб усі об'єкти були створені / належать одному менеджеру і однакові для інших. У мене зараз кожен менеджер / контролер успадковується від GameComponent, однак як це виграти, якщо об’єкт гри володіє всіма менеджерами та вручну викликає оновлення на них та малює?
Я помітив, що Initialize викликається перед ContentLoad (), мені це було дратує, оскільки в моєму Initialize - це те, де я хотів би створити деякі мої сутності (наприклад, Sprite, Player тощо), однак я не можу дати їм їх завантаження SpriteSheets або Textures, оскільки виклик для їх завантаження ще не відбувся. Я, можливо, ініціалізую неправильно чи люди просто присвоюють текстуру далі в ContentLoad?
Це, здається, є моїм найбільшим " WTF " не дуже розуміючого