PDA

Просмотр полной версии : Движок для квеста PART II=)


Crash512
27.02.2006, 20:37
Итак, с движком мне здесь помочь отказались, пришлось думать самому=))

Напомню, речь идёт об обхождении персонажем препятствий.

Начнём с того, что программист я пока бездарный, поэтому не смог врубиться ни в рекурсию, ни в волновой алгоритм (тем более, я так понял, он здорово тормозит флэшку). Пришлось придумывать что-то своё.

Система довольно простая. Игровая поляна поделена на десяток локаций. Персонаж получает координаты, и в функции просчитывается весь его путь. Потом по этому пути высчитываются координаты. Персонаж проходит через центральные координаты локаций, расчитанных в пути. Так как персонаж притормаживал на отдельных локациях (при прямом ходе), нехитрым условием я сделал сокращение лишних координат.

Мне, в принципе, нравиться то, что получилось. Так как расчёт пути происходит по щелчку мыши (далее персонаж просто пройдёт по полученным координатам), тормоза от скрипта сведены к минимуму (на моём Celeron 2.0 GHz всего 0.2-0.4 секунды после щелчка мыши до начала движения).

Вот то, что получилось. Я уже столько раз его тестил, что мог что-нить пропустить.

Подскажите пожалуйста недостатки данного движка. Может есть более актуальные варианты решения проблемы?..

Crash512
27.02.2006, 23:54
Блин, и никому нечего сказать?..

Crash512
27.02.2006, 23:57
Я тут его чуть-чуть подредактировал...

Psycho Tiger
28.02.2006, 09:48
Да есть.
например, можно сдлеать чтобы персонаж када тыкался в стенку смотрел, куда ему нада идти (ниже выше, левее правее) и "тыкаясь в стенку" двигаясь по координате х или у, но при этом как только появится возможность сделать шаг в к более близкой точке (нужной точки) - сделать этот шаг

Crash512
28.02.2006, 16:39
Да есть.
например, можно сдлеать чтобы персонаж када тыкался в стенку смотрел, куда ему нада идти (ниже выше, левее правее) и "тыкаясь в стенку" двигаясь по координате х или у, но при этом как только появится возможность сделать шаг в к более близкой точке (нужной точки) - сделать этот шаг

Тормоза будут сильные (я думаю). В моём варианте весь путь просчитывается по щелчку, а потом персонаж двигается... Прикинь, если тонна скрипта будет просчитываться перед каждым фтыканием в стенку??

Kyber Anton
28.02.2006, 23:58
Тормозов не будет. На моём 750 Duron'е , по крайней мере, нет.

Crash512
01.03.2006, 00:04
Kyber Anton, а скрипт не можешь примерно подсказать?.. Или исходник?..

Psycho Tiger
01.03.2006, 11:56
Алгоитм:
Если слева стена и мне надо налево:
Если надо вверх - иди вверх
Если надо вниз - иди вниз
Если слева нет стены и надо налево то иди налево

Чот типа такого
Слух, а ты 1 часть игры писал? где надо выпить пиво, закусмть тараканом и смыстя в унитазе?

Crash512
01.03.2006, 12:20
Я вообще отписал и отрисовал всю игру... Просто началось это 4 года назад, мне было ещё 15, и в программировании я шарил туго... А сейчас поступил на 220100, и грызу гранит науки...=)))

Crash512
01.03.2006, 12:21
Алгоитм:
Если слева стена и мне надо налево:
Если надо вверх - иди вверх
Если надо вниз - иди вниз
Если слева нет стены и надо налево то иди налево

Чот типа такого
Слух, а ты 1 часть игры писал? где надо выпить пиво, закусмть тараканом и смыстя в унитазе?

А если нет вариантов "слева стена"? Если все препятствия имеют неправильную форму??

Mordman
01.03.2006, 15:42
Самое простое создать массив точек с координатами.
Почитай про графы и построение кратчайшего пути в графе