Ну я использовал вот такую часть кода:
Код
if argument5=1{
steps=global.SP[target.O]+1
if steps>2{
for (i=0 ;i<=path_get_number(tile_path);i+=1){
if place_meeting(path_get_point_x(tile_path,i),path_get_point_y(tile_path,i),difficult_terrain_1){
steps-=0.5
}
if place_meeting(path_get_point_x(tile_path,i),path_get_point_y(tile_path,i),difficult_terrain_2){
steps-=1
}}
if path_get_number(tile_path)>round(steps){instance_destroy()}
}}}}}
И сразу же заметил один неприятный косяк=(
Раньше я не придавал значения этому , потому что такой способ перемещения не планировался , но теперь это стало очень важным...
На скриншоте синими цифрами показано , насколько уменьшился путь до ячеек из-за местности , а красными линиями выделены пути.
Из-за такого поиска пути , некоторые ячейки удалились , когда они могли быть достигнуты...
Что можно с этим сделать?
Я смотрел волновой алгоритм , но там ,кажется , тоже самое...
Смотрел А стар , но там вылетают какие-то непонятные ошибки...
Добавлено (08.11.2013, 03:04)
---------------------------------------------
Опять я сам решил свою проблему...
Подошел волновой алгоритм , но не тот , что я нашел до этого!
Тот вообще был нисколько не ясным , поэтому я использовал другую основу и довел до того , что мне нужно.
Пример