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

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

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Если писать код перемещения персонажа в классе Keys
Во-первых, я такого не говорил. Я не согласен с тем, что код перемещения должен писаться в том, кто перемещается. Во-вторых, это Вам кажется, что скорость обязана храниться в персонаже. Прежде всего потому, что Вы еще не готовы мысленно разделять данные и отображение, и не представляете другого способа, кроме как хранить всю инфу о персонаже в его "картинке". Попробуйте рассматривать все изображения на карте как просто изображения. Управляемые логикой на уровне карты. Карта в любом случае знает все объекты, которые на ней находятся — они ее дети. Намного проще проверять коллизии и управлять перемещением на этом уровне, а не изнутри отдельных объектов, абсолютно ничего не знающих об окружающем мире.
Но, возможно, для этого разговора еще просто не настало время.
Класс Keys должен просто представлять состояние клавиатуры. Никакой другой ответственности не надо на него вешать.
Логическое ядро по таймеру или ентерфрейм пытается построить текущее состояние карты для нового "кадра". Опрашивает клавиатуру, какие клавиши нажаты, анализирует положение объектов: может ли двигаться перс в заданном направлении, не столкнулся ли он со стеной, или бонусом, или врагом, не достиг ли финиша и жив ли еще вообще)). Направляет врагов, в поле зрения которых попал перс, в его сторону, и т.д. Еще раз повторюсь: персонаж в вакууме это одно. Вы можете тупо прибавлять/отнимать скорость от его координаты по нажатию клавиши. Персонаж как часть системы — абсолютно другое. Здесь его движение зависит от состояния всей системы, а вовсе не только от нажатой клавиши. Просто представьте аналогию: вы с другом играете в шашки. Шашкам не надо знать, как ходить. Они просто изображают себя на карте. А перемещение делаете Вы. И Вы знаете, куда и как надо ходить, кто будет "срублен" и закончилась ли игра. Не шашки.
__________________
Reality.getBounds(this);

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

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

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


 


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


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