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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.04.2013, 00:05
miskalik вне форума Посмотреть профиль Отправить личное сообщение для miskalik Найти все сообщения от miskalik
  № 1  
Ответить с цитированием
miskalik
 
Аватар для miskalik

Регистрация: Feb 2011
Сообщений: 12
Question Вопрос про структуру игровых классов.

Я зеленый в ООП, можно уточнить...
Как сделать оптимальную структуру игры, не используя кадры.
Например, у нас есть главный класс Game.as, который привязывается к Game.fla. В этом классе создаем экземпляр следующего класса Menu.as, который экспортирует нужные кнопки и размещает их на сцене.
Например, после события Клика по кнопке GoGame_btn вызывается некая функция создающая экземпляр GameWorld.as
Что делать дальше? Удалить все кнопки? Или скрыть со сцены .visible?
Если GameWorld.as отвечает за концепцию игры, то после выигрыша или проигрыша, снова удалять все компоненты прошедшей игры?

Старый 09.04.2013, 09:05
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Нет универсальной структуры классов, как и нет универсального способа создать игру.
Есть разные шаблоны проектирования (design patterns), вот о них и нужно читать, чтобы понять как лучше организовывать проекты. Люди придумавшие эти шаблоны тоже когда-то наступали на все те же грабли, и придумывали способы их грамотно обходить.

п.с. Есть даже книга ActionScript 3.0 Design Patterns. У нее даже перевод на русский есть. Советую почитать.
Не могу сказать, что книга просто супер, но некоторое представление о том как все должно работать даст однозначно.

Старый 09.04.2013, 13:03
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 3  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
однажды на этом форуме кто-то сказал умную фразу, которую я запомнил на всю жизнь: "самый быстрый способ чему-то научиться - начать учить, остальные способы более медленные".

Старый 09.04.2013, 13:10
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
В дополнение к сказанному, — учиться, пробовать и писать код
__________________
hauts.ru

Старый 09.04.2013, 15:30
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 5  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Сообщение от gagaga Посмотреть сообщение
однажды на этом форуме кто-то сказал умную фразу, которую я запомнил на всю жизнь...
Вы его меньше слушайте, он и не такое ляпнуть может.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Feb 2011
Сообщений: 12
Спасибо за советы, буду вникать в эту тему

Старый 10.04.2013, 00:00
maloun365 вне форума Посмотреть профиль Отправить личное сообщение для maloun365 Найти все сообщения от maloun365
  № 7  
Ответить с цитированием
maloun365
 
Аватар для maloun365

Регистрация: Dec 2011
Адрес: в Перми
Сообщений: 33
Цитата:
Сообщение от miskalik Посмотреть сообщение
Что делать дальше? Удалить все кнопки? Или скрыть со сцены .visible?
Если GameWorld.as отвечает за концепцию игры, то после выигрыша или проигрыша, снова удалять все компоненты прошедшей игры?
я считаю, что нужно удалять все кнопки со сцены, можно параллельно с экраном загрузки
невидимые объекты тупо занимают лишнее место в оперативке, коей не у всех много,
для ресурсоемких проектов это критично, но если проект мелкий можно не заморачиваться

Цитата:
Сообщение от miskalik Посмотреть сообщение
Как сделать оптимальную структуру игры, не используя кадры.
смотря что является оптимальной структурой,
идеальный вариант, это найти исходный код чужой игры и тырить оттуда фишки для своей,
но не концепцию игры, а принцип построения кода
__________________
http://z0r.de/L/z0r-de_2898.swf


Последний раз редактировалось maloun365; 10.04.2013 в 00:15.
Старый 10.04.2013, 00:35
miskalik вне форума Посмотреть профиль Отправить личное сообщение для miskalik Найти все сообщения от miskalik
  № 8  
Ответить с цитированием
miskalik
 
Аватар для miskalik

Регистрация: Feb 2011
Сообщений: 12
maloun365, спасибо.
__________________
trace("Хорошего дня");

Старый 10.04.2013, 02:58
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 9  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Лучше писать код, использовав паттерн МVC или МСV ))
Где слой модели - M отделен от вида V контроллером С, который с ними и взаимодействует и они взаимодействуют друг с другом через него. Поэтому лучше писать логику в контроллере. Если вам надо сообщить что-то от Модели Виду используйте диспатч, но не используйте диспатч если находитесь в Контроллере и хотите узнать что-то от вида V или модели М, просто используйте их напрямую. По максимуму применяйте наследование от какого-то базового класса BaseClass для модели, контроллера и вида, чтобы избежать дублирования переменных. Если вы планируете использовать классы, создаваемые не вами (которые по факту чаще слабосвязанны с ядром), используйте механизм интерфейсов, в которых описывайте методы, с помощью которых эти сторонние классы будут общаться с ядром, а ядро с ними. Но искусственно не плодите интерфейсы, а тем более не начинайте проектирование системы с описания интерфейсов. Потому, что их чаще приходиться модифицировать. А раз так значит это затронет все классы которые имплементируют данный интерфейс. Выносите все данные в XML, тогда методы доступа к данным будут по сути методами доступа к нодам. Смело используйте XPath и XMLList. XPath, к сожалению, не нативен, но позволяет параметрически программно задавать запросы используя строковые переменные. Используйте класс Dictionary для организации ассоциативных структур, но можно обойтись и XML))) Для начала хватит.


Последний раз редактировалось Babylon; 10.04.2013 в 09:36.
Старый 10.04.2013, 13:05
maloun365 вне форума Посмотреть профиль Отправить личное сообщение для maloun365 Найти все сообщения от maloun365
  № 10  
Ответить с цитированием
maloun365
 
Аватар для maloun365

Регистрация: Dec 2011
Адрес: в Перми
Сообщений: 33
Babylon, ну завалили теорией!
пееходя от теории к практике, берём проект с MVC и разбираем как он работает
http://www.codeproject.com/Articles/...troller-Design

памоему этот на Java написан, но не имеет значения на каком языке написан проект,
другой язык даст более глубокие знания о программировании в целом, хотя удобнее найти проект на том же языке
__________________
http://z0r.de/L/z0r-de_2898.swf

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

Теги
игра , классы , структура

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

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


 


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


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