Альтернатива поведению Grid Movement в C2

исходники и примеры в формате .capx

Сообщение Альтернатива поведению Grid Movement в C2
» 14 янв 2013, 04:57

Grid Movement (без препятствий)

 ">>>"
Изображение

Мне все же удалось создать, возможно, самый простой вариант поведения Grid Movement в Construct 2, состоящий всего из 12 событий.

Исходник (строго 4 направления как в первом Construct):
my Grid Movement (4 Direction) fix.capx
(5.23 КБ) Скачиваний: 391

Еще один вариант, где объект может перемещаться по сетке в 8-ми направлениях.

Исходник (8 направлений):
my Grid Movement (8 Direction) fix.capx
(5.22 КБ) Скачиваний: 292

Grid Movement (с препятствиями)

 ">>>"
Изображение


Столкновение с объектами происходит за счет специальных маркеров, которые блокируют нажатие клавиш. Если найдете способ проще то выложите исходник сюда.

Исходник (строго 4 направления + столкновение с объектами):
my Grid Movement (4 Direction + Solid).capx
(8.58 КБ) Скачиваний: 462

Grid Movement (управление мышью)

 ">>>"
Изображение


Сама схема управления Grid Movement почти не изменилась, просто вместо клавиатуры была добавлена переменная, которая имитирует нажатие клавиш (Right, Left, Down, Up). А вот меняет эту переменную целая группа событий, с которой мне пришлось повозится.

Исходник:
my Grid Movement (4 Direction + Mouse).capx
(6.65 КБ) Скачиваний: 354

Конечно, события можно оптимизировать подключив напрямую мышку с движением спрайта (move at angle), но мне в данном случае показалось, что так проще сделать, чем переделывать все заново.

Grid Movement (управление мышью + препятствия)

 ">>>"
Изображение


Добавлены маркеры для расчета столкновений с препятствиями.

Исходник:
my Grid Movement (4 Direction + Mouse + Solid).capx
(9.37 КБ) Скачиваний: 587

К сожалению, но систему обхода препятствий мне пока не удалось реализовать. Если кто сможет сделать выложите исходник.


Большое спасибо всем кто помогал с примерами. Если найдете ошибки пишите, буду фиксить. :smile:
Последний раз редактировалось Developer 16 янв 2013, 04:23, всего редактировалось 8 раз(а).
Аватара пользователя

Игродел
Сообщений: 494
Я тут с 04 янв 2013
Репутация 66 [ ? ]

Сообщение Re: Альтернатива поведению Grid Movement в C2
» 14 янв 2013, 09:14

Хороший пример. Еще бы управление с помощью мыши и, да, с алгоритмом нахождения пути.
Изображение
Аватара пользователя

Игродел
Сообщений: 1037
Я тут с 14 сен 2012
Откуда: Красноярск
Репутация 125 [ ? ]

Сообщение Re: Альтернатива поведению Grid Movement в C2
» 14 янв 2013, 14:44

Zaksoid писал(а):Еще бы управление с помощью мыши и, да, с алгоритмом нахождения пути.

Хорошая идея. Сделаю, если получится. :smile:
Аватара пользователя

Игродел
Сообщений: 494
Я тут с 04 янв 2013
Репутация 66 [ ? ]

Сообщение Re: Альтернатива поведению Grid Movement в C2
» 14 янв 2013, 16:11

На данный момент пока лучшее решение. +
Аватара пользователя
C2

Участник
Сообщений: 5
Я тут с 04 янв 2013
Репутация 2 [ ? ]

Сообщение Re: Альтернатива поведению Grid Movement в C2
» 14 янв 2013, 16:34

C2 писал(а):На данный момент пока лучшее решение. +

Спасибо. Но, я нашел ошибку, которая возникает, когда спрайт подъезжает к краям экрана. Чтобы ее устранить пришлось добавить еще 2 события:

Изображение

Таким образом общее количество событий было увеличено до 12. Также я добавил текстовый объект, который выводит координаты на экран (13-ое событие).

В первый пост добавил Grid Movement с препятствиями:

Изображение

К моему удивлению, количество событий не увеличилось. Просто были добавлены маркеры и под-условия. Качайте! :smile:
Аватара пользователя

Игродел
Сообщений: 494
Я тут с 04 янв 2013
Репутация 66 [ ? ]

Сообщение Re: Альтернатива поведению Grid Movement в C2
» 14 янв 2013, 19:40

Developer писал(а):добавил Grid Movement с препятствиями

зачет!! :good2:
Аватара пользователя

Администратор
Сообщений: 5511
Я тут с 05 сен 2012
Двиг: Construct2
Лицензия: Personal
Skype: c2community
VK: gabrielsailergray
Репутация 366 [ ? ]

Сообщение Re: Альтернатива поведению Grid Movement в C2
» 14 янв 2013, 21:38

:good: Отличное решение, пожалуй, действительно самый простой по своей сути пример "сеточного движения" на C2. + :biggrin:

Что касаемо оптимизации, то можно сделать на одно событие меньше:
 Было
Изображение

 Стало
Изображение


Еще, кстати, я пробовал заменить стандартную схему с четырьмя индикаторами на события "overlaps at offset" (все-таки это целых 4 объекта), но ничего толкового не получилось :cray:
Аватара пользователя

Игродел
Сообщений: 405
Я тут с 08 янв 2013
Откуда: Мск
Репутация 205 [ ? ]

Сообщение Re: Альтернатива поведению Grid Movement в C2
» 14 янв 2013, 21:55

Этот пример сделан по примеру с сайта scirra.com, так вот при малом fps Sprite проскакивает стены, я думаю нужно как то избавляться от "детекторов".
Аватара пользователя
C2

Участник
Сообщений: 5
Я тут с 04 янв 2013
Репутация 2 [ ? ]

Сообщение Re: Альтернатива поведению Grid Movement в C2
» 14 янв 2013, 22:43

Ilyko96 писал(а):Что касаемо оптимизации, то можно сделать на одно событие меньше:

 Стало
Изображение

Увы, я так делал, но после этого объединения, что-то происходит в событиях и теперь при одновременном нажатии двух стрелок (например, вверх и вправо) спрайт начинает ездить по диагонали. Скорее всего такая оптимизация подойдет только тем, кто изначально хочет сделать Grid Movement в 8 направлениях.

Ilyko96 писал(а):Еще, кстати, я пробовал заменить стандартную схему с четырьмя индикаторами на события "overlaps at offset" (все-таки это целых 4 объекта), но ничего толкового не получилось :cray:

Тоже пытался, но увы. Проще этого не смог придумать.

C2 писал(а):Этот пример сделан по примеру с сайта scirra.com, так вот при малом fps Sprite проскакивает стены, я думаю нужно как то избавляться от "детекторов".

Хотелось бы.
Аватара пользователя

Игродел
Сообщений: 494
Я тут с 04 янв 2013
Репутация 66 [ ? ]

Сообщение Re: Альтернатива поведению Grid Movement в C2
» 15 янв 2013, 00:08

Обновлен первый пост. Добавлен Grid Movement (управление мышью).

Изображение

В планах: Grid Movement (управление мышью) с добавлением Solid объектов.
Аватара пользователя

Игродел
Сообщений: 494
Я тут с 04 янв 2013
Репутация 66 [ ? ]



Вернуться в Исходники и Примеры для Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх