![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+3 18.10.09]
Регистрация: Mar 2008
Сообщений: 19
|
Я так понимаю, что вопрос больше по ООП.
Вот, к примеру, хочу написать арканоид. Очень примитивный - космический кораблик, который может стрелять и двигаться влево-вправо, и летящие навстречу (опускающиеся по оси Y) объекты Создаю документ Flash. Отрисовываю основные объекты (кораблик, встречный объект и пуля). Уровень один. Старта и геймовера нет. Как я себе это представляю: 1 Основной класс (импортирует все остальные классы, добавляет их на таймлайн) 2 Класс корабля (Вытаскивает из библиотеки клип корабля, слушает переменные из класса управления и реагирует на их изменения) 3 Класс пули(Вытаскивает из библиотеки клипы пули,двигает их,удаляет их и их слушатели, когда они покидают рамки экрана или касаются встречного объекта, удаляет встречный объект. каждая пуля слушает столкновение) 4 класс встречных объектов (Вытаскивает из библиотеки клипы ,двигает их,удаляет их и их слушатели, когда они покидают рамки экрана) ) 5 Класс управления (состоит из слушателей клавиатуры и переменных для клавиш управления) Если не считать того что все это можно запиндюрить в один документ, то сама организация верна? |
|
|||||
|
Цитата:
Критерии правильности: - быстро добавляются новые возможности - быстро находится место, где произошла бага - игра не тормозит и не жрет память Выполняется - значит всё ОК. И самое главное: Если Вы не видите никаких проблем в том чтобы запихнуть все в один документ, а мучаетесь выделением сущностей - значит Вы занимаетесь "архитектурной астронавтикой" Срочно все выкидывайте и пишите в одном классе - до наступления "что я употреблял, когда это писал и что надо употребить, чтобы это понять снова" или до окончания работы на игрой. Тогда, возможно, Вы лучше поймете проблемы написания все в одном файле (Вирт Никлаус, вроде, говорил, что больше 2000 строк, не разбитых на функции ни один мозг на земле родить не может). |
|
|||||
|
Да вообще не парьтесь, я свой первый проект так и делал - классы создавал по мере необходимости, класс звездолета, класс астероидов, класс панели, на которой выводились данные по игре (броня, энергия и т.д.) были конечно и кривости, но только начав писать, начинаешь понимать как все надо было проектировать, иначе никак. Это как плавать - пока не начнешь пробовать не научишься.
Добавлено через 7 минут И еще - как я помню, мне было сложно наладить передачу данных из класса в класс (точнее из объектов в объекты). Но тут статические методы вам в помощь, или даже 1 статический класс на игру сделайте куда пишите/берите настройки игры например, или параметры звездолета |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|