Я начал программировать игру для iphone, и, как и все новички, я чувствую, что стреляю в темноте.Я просто хочу показать мой дизайн и то, как работает мой «графический движок», чтобы увидеть, что-то близкое к стандартному дизайну или хорошей практике.Позвольте мне объяснить, как это работает:
Для упрощения позвольте мне просто сказать, что у меня есть следующие 3 класса:
LevelView : наследуется от UIViewController и является представлением с 10 кнопкамидля каждого уровня игры.При нажатии кнопки создается новый объект GameViewController (с использованием initWithLevel) и создается его целое число (1-10) в соответствии с уровнем, выбранным игроком.
GameViewController : наследуется от UIViewController и имеетметод initWithLevel (int) и большой оператор switch, который выполняет настройку уровня в соответствии с переданным int.Таким образом, он создает два типа объектов (роботов и планет) в различных количествах в соответствии с каждым уровнем.Каждый объект, который он создает, вставляется в массив, принадлежащий одиночному.Затем в конце он запустит игровой цикл, который является другим методом в этом классе.
GameView : наследуется от UIView и где все рисуется (имеет метод drawRect) и где происходит касаниеМетоды Begin, Moved и Ended являются.Что будет с каждым игровым циклом, так это то, что он вытянет все объекты из глобального массива (массива в синглтоне) и, в зависимости от того, что это за объект, нарисует правильное изображение в правильном месте.(расположение роботов и планет хранится в их соответствующих объектах в виде переменных)
В методах Touch Begin, Moved, Ended в зависимости от того, что пользователь делает, соответствующие объекты извлекаются из массива Singleton и их положения /способность обновлена.Поэтому в следующий раз, когда цикл запустится и они будут отрисованы заново, метод draw обновит их местоположение или поведение.
Это звучит примерно так же, как сейчас?Должен ли я создавать экземпляр объекта GameViewController для запуска уровня?Должен ли gameLoop находиться в GameViewController или в GameView.Я добавил GameView на GameViewController в InterfaceBuilder. Он будет рисовать начальные объекты, но я не уверен, как их обновить в будущем.Как вызвать метод drawRect для обновления всего?
В любом случае, извините за очень длинный пост.Я не ищу конкретного ответа, просто обзор от кого-то более опытного в этом, чтобы сказать мне:
1) да, вы идете в правильном направлении, мудрый дизайн
2) нет, вам нужнопереосмыслить несколько вещей
Спасибо за вашу помощь
Став