Управление мышкой:
http://www.amaranthia.com/downloads/Mouse-System.zip
наиболее грамотный из тех что мне попадались
там и управление менюшками и своя система нахождения пути, но до первой стенки) т.е. он идёт в лоб
там в методе mouse_press? отдельно проверяются координаты события (т.е. клетки где стоит) и просто путь, но уже в своих координатах. в общем формулы для события:
Код:
# get the icon to display
if @mouse_status[id][0] <= 0
$hoverx = (pos[0] + $game_map.display_x / 4) / 32
$hovery = (pos[1] + $game_map.display_y / 4) / 32
icon = check_event($hoverx,$hovery)
end
это и есть определение клетки. Заменяем это
Код:
# move character when mouse is pressed
if @mouse_status[id][0] > 0
$mousex = pos[0] + $game_map.display_x / 4
$mousey = pos[1] + $game_map.display_y / 4
$move = 1
end
например так:
это и будет просто определение клетки.
Код:
# move character when mouse is pressed
if @mouse_status[id][0] > 0
$destx = (pos[0] + $game_map.display_x / 4) / 32
$desty = (pos[1] + $game_map.display_y / 4) / 32
$move = 1
end
Потом сажаем вызов патчфайдинга в метод ниже
в
убрав всё что там в этом условии и написав, допустим
Код:
e = Node.new($destx, $desty)
$path = A_Star_Pathfinder.new(e)
Как-то так. Может что забыл.
В принципе я похимичил и всё получилось, но я делал это всё внутри ещё одного проекта
с SBABS, у меня герой не хотел идти дальше 2-3 клеток, возможно мешались события сопартийцев. Надо попробовать в чистом проекте.
upd: в чистом тоже самое, персонаж просто встаёт и всё, не реагирует. что-то не так.
Социальные закладки