Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.12.2011, 16:32
Palasatik вне форума Посмотреть профиль Отправить личное сообщение для Palasatik Найти все сообщения от Palasatik
  № 1  
Ответить с цитированием
Palasatik
[+3 18.10.09]
 
Аватар для Palasatik

Регистрация: Mar 2008
Сообщений: 19
По умолчанию Помогите пожалуйста. Дайте пример организации кода.

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

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

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

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

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

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

Старый 02.12.2011, 21:39
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Сообщение от Palasatik Посмотреть сообщение
Если не считать того что все это можно запиндюрить в один документ, то сама организация верна?
Х.З. Если бы на весь код посмотреть.
Критерии правильности:
- быстро добавляются новые возможности
- быстро находится место, где произошла бага
- игра не тормозит и не жрет память
Выполняется - значит всё ОК.

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

Старый 02.12.2011, 22:56
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 3  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Да вообще не парьтесь, я свой первый проект так и делал - классы создавал по мере необходимости, класс звездолета, класс астероидов, класс панели, на которой выводились данные по игре (броня, энергия и т.д.) были конечно и кривости, но только начав писать, начинаешь понимать как все надо было проектировать, иначе никак. Это как плавать - пока не начнешь пробовать не научишься.

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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