Передвижение по сетке
Этот код что я написал работает криво, вернее движение дерганое из-за позиционирования но без него никак, нужно же как-то привязаться к виртуальной сетке. Помогите пожалуйста.
Код:
Function MoveToGrid(Entity=0,camera=0,A=17,B=31,C=30,D=32) |
Ответ: Передвижение по сетке
1. в параметре по умолчанию Entity=0 - лишнее, объект всегда должен передаваться, либо нужна проверка if(Entity = 0) then return
2. PHP код:
также GridSize сделай дробным типом 3. перемещение камеры лучше убрать из этой функции, обрабатывать вне её 4. передача кодов клавиш движения в функцию, хоть и со значениями по умолчанию - тоже выглядит странно, можно сделать глобальные переменные KEY_LEFT KEY_RIGHT KEY_UP KEY_DOMW и их использовать, при необходимости их всегда можно будет переназначить |
Ответ: Передвижение по сетке
Здесь нужно как-то отключить инерцию но как. И знаю что решение простое но никак не могу к нему прийти. Наверное нужно менять алгоритм.
|
Ответ: Передвижение по сетке
Все решил как сделать поправил код и изменил размер сетки с 1 на 10 и теперь при прибавлении 0,5 к движению тело двигается сугубо по сетке, но появился один небольшой недостаток теперь объекты уровня нужно будет скейлить до нужного размера.
|
Ответ: Передвижение по сетке
В AStar примере для Блитза есть такая функция:
Код:
Function MoveUnit(unit.unit) xPath и yPath это клетка на которую нужно передвинуться xLoc и yLoc это клетка на которой находится объект (или наоборот. не помню уже) unit\speed это скорость. |
Ответ: Передвижение по сетке
Цитата:
только нужно учесть ограничение кадров в секунду, чтобы на разных компах примерно одинаково работало, т.е. не со скоростью света на мощных. |
Часовой пояс GMT +4, время: 17:17. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot