![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
|
Доброго времени суток всем.
Понимаю, что всех уже достали подобные вопросы, но я лучше спрошу 1 раз и больше у меня проблем не возникнет, чем накидаю невнятный код и пойму, что решение неверное, потрачу время и, в итоге, все равно задам вопрос. Небольшое вступление закончено. Итак, к проблеме. Написана модель движения аля Diablo | Sacred | Torchlight (управление мышью, Shift останавливает персонажа и т.п. ), то бишь используются функции типа "moveTo", "moveStart", "moveStop", которые принимают произвольные для персонажа координаты. Все бы ничего, и создал бы я класс Character и добавил бы в него все эти функции, НО другие объекты так же двигаются (снаряды, стрелы, противники). Итого, получаем функции, нужные всем дин. объектам. Итак, вопрос: как лучше спроектировать классы? Пока я вижу одно решение - выделить общий класс всех "движущихся" объектов игры, например GameDynamicObjects и класс Character будет дочерним от него. Если бы управление было стрелочно-WASD'шным, то я без тени сомнения добавил бы это все в класс Character И не парился, но я парюсь по вышеизложенным причинам, поэтому прошу помощи более опытных людей в этом плане. Спасибо за внимание |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Dalass13, по-моему, вы абсолютно правильно мыслите.
Цитата:
__________________
hauts.ru |
|
|||||
|
Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
|
Да, я понимаю, что путаница небольшая возникает из-за слова "динамический", спасибо за совет.
Получается, я на правильном пути? |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Dalass13, думаю, что да. Подождите ответов других участников, может подскажут больше
![]() Цитата:
![]()
__________________
hauts.ru |
|
|||||
|
Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
|
Да, была такая мысль, но старое доброе дьябловское управление изменять не хочу. А такие WASD'шные "подергивания" и "отклонения от траектории" могут понадобиться, например, для уворота от стрел, когда маршрут уже указан. Одна проблема - при удерживании мыши персонаж двигается за мышью непрерывно и управление в этот момент WASD может просто напросто запутывать игрока в отношении его движения. Палка с двумя концами, как говорится) Юзабилити с одной стороны падает,а с другой стороны, кто - то посчитает это очень нужной фичей. Но это тоже, если я правильно понял
|
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Весь общий функционал наследуйте, то, что не наследуется приходиться расширять т.е. экстендить. Слова английские в языке AS3 не просто так используются
![]() |
|
|||||
|
Вообще, можно одни и те же функции использовать и для управления мышью, и для управления клавиатурой.
Я бы ввел отдельно функцию setRotation(angle:Number):void и moveTo(toX:Number, toY:Number, distance:Number = -1):void Во втором опциональный параметр, то есть при щелчке мышью можно передать координаты к которым должен двигаться объект, и расстояние, чтобы он не прошел больше этого расстояния. Но это методы можно использовать и при движении с помощью клавиатуры. Например при нажатии W персонаж начинает двигаться в том направлении, в котором развернут на расстояние, равное текущей скорости. Цитата:
|
|
|||||
|
Регистрация: Oct 2010
Адрес: Свердловск
Сообщений: 77
|
Цитата:
Добавлено через 1 минуту Цитата:
Добавлено через 12 минут Насчет этого лишнего функционала я тоже уже высказывался, а то, что предложили Вы больше подойдет для игр с видом сверху или 2D изометрии. У меня же будет чисто 2D задумка ( прямо, как старые битемапы ). Вот, кажется все мысли высказал Последний раз редактировалось Dalass13; 12.04.2013 в 10:51. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|