Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите пожалуйста. Дайте пример организации кода. (http://www.flasher.ru/forum/showthread.php?t=172134)

Palasatik 02.12.2011 16:32

Помогите пожалуйста. Дайте пример организации кода.
 
Я так понимаю, что вопрос больше по ООП.
Вот, к примеру, хочу написать арканоид. Очень примитивный - космический кораблик, который может стрелять и двигаться влево-вправо, и летящие навстречу (опускающиеся по оси Y) объекты Создаю документ Flash. Отрисовываю основные объекты (кораблик, встречный объект и пуля). Уровень один. Старта и геймовера нет.

Как я себе это представляю:
1 Основной класс (импортирует все остальные классы, добавляет их на таймлайн)

2 Класс корабля (Вытаскивает из библиотеки клип корабля, слушает переменные из класса управления и реагирует на их изменения)

3 Класс пули(Вытаскивает из библиотеки клипы пули,двигает их,удаляет их и их слушатели, когда они покидают рамки экрана или касаются встречного объекта, удаляет встречный объект. каждая пуля слушает столкновение)

4 класс встречных объектов (Вытаскивает из библиотеки клипы ,двигает их,удаляет их и их слушатели, когда они покидают рамки экрана)
)
5 Класс управления (состоит из слушателей клавиатуры и переменных для клавиш управления)

Если не считать того что все это можно запиндюрить в один документ, то сама организация верна?

expl 02.12.2011 21:39

Цитата:

Сообщение от Palasatik (Сообщение 1049346)
Если не считать того что все это можно запиндюрить в один документ, то сама организация верна?

Х.З. Если бы на весь код посмотреть.
Критерии правильности:
- быстро добавляются новые возможности
- быстро находится место, где произошла бага
- игра не тормозит и не жрет память
Выполняется - значит всё ОК.

И самое главное:
Если Вы не видите никаких проблем в том чтобы запихнуть все в один документ, а мучаетесь выделением сущностей - значит Вы занимаетесь "архитектурной астронавтикой"
Срочно все выкидывайте и пишите в одном классе - до наступления "что я употреблял, когда это писал и что надо употребить, чтобы это понять снова" или до окончания работы на игрой. Тогда, возможно, Вы лучше поймете проблемы написания все в одном файле (Вирт Никлаус, вроде, говорил, что больше 2000 строк, не разбитых на функции ни один мозг на земле родить не может).

PainKiller 02.12.2011 22:56

Да вообще не парьтесь, я свой первый проект так и делал - классы создавал по мере необходимости, класс звездолета, класс астероидов, класс панели, на которой выводились данные по игре (броня, энергия и т.д.) были конечно и кривости, но только начав писать, начинаешь понимать как все надо было проектировать, иначе никак. Это как плавать - пока не начнешь пробовать не научишься.

Добавлено через 7 минут
И еще - как я помню, мне было сложно наладить передачу данных из класса в класс (точнее из объектов в объекты). Но тут статические методы вам в помощь, или даже 1 статический класс на игру сделайте куда пишите/берите настройки игры например, или параметры звездолета


Часовой пояс GMT +4, время: 21:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.