Iphone Game Develoment - нужно руководство по дизайну - PullRequest
2 голосов
/ 14 ноября 2010

Я начал программировать игру для 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) нет, вам нужнопереосмыслить несколько вещей

Спасибо за вашу помощь

Став

Ответы [ 2 ]

1 голос
/ 14 ноября 2010

Я согласен с Cocos2d.С другой стороны, если вы заинтересованы в том, как работает графика, начните изучать OpenGL ES, это трудно освоить, но как только вы узнаете это, вы не так ограничены, как раньше, используя каркасы, которые выполняют всю работу.

На ваш другой вопрос, дизайн.Приложения построены по модели MVC.В зависимости от масштаба приложения, вы можете поместить игровой цикл (логику) в класс контроллера или для более крупного проекта (и лучшего дизайна) вы должны разделить 2 на мой взгляд.

1 голос
/ 14 ноября 2010

Я действительно очень рекомендую использовать хороший игровой фреймворк, такой как Cocos2d, вместо того, чтобы катать его все самостоятельно.

С ним очень быстро и легко катиться, и с его помощью было сделано лот топовых игр.

Он даже обрабатывает "уровни", как вы пытаетесь сделать.

Я скачал его, и мое первое тестовое приложение заработало за 24 минуты!

Проверьте это по адресу:

http://www.cocos2d -iphone.org /

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