Добрый день Уважаемые!!!
Я хочу написать игру на подобии "Штырлиц","Страшилки"
Думаю многие в них играли и поймут мой вопрос.
Проблемма у меня встала при создании передвижения главного героя.
Предисловие:
сначала я искал самый короткий путь.(волновой метод нашел на vbstreet)
Есть массив map(0 to 24,0 to 9) as byte 'поле 320*800
равный 0 или 1 (проходим\не проходим)
Карта поделена на клетки размером 32*32
(Не проходимые клетки это обьекты например:машина,стол,или бочка)
Допустим что картинка бочки = 64*64, но не проходимые точки только две, нижнии (точки опоры (обьём обьекта))
0 0
1 1
все обьекты находятся по координатам x y z
где z просто порядок прорисовки.
--------
при нахждении пути функция возвращает массив с координатами пути до места назначения
и вот тут начинается загвоздка.
я передвигаю главного героя по полученым координатам.
где:
высота и ширина = не стандартная (может иметь любой размер (но больше 32))
x картинки = (полученый x*32 + каринка.ширина \2)+16 'середина картинки + половина клетки
y картинки = полученый y*32 + каринка.высота+16 'низ картинки + половина клетки
z картинки = y картинки \32
------
обход обьекта происходит по его краю
00<-
/\
11|
<-<-<-<-<-$
и получается что изображение главного героя когда он обходит обьект накладывается
на картинку обьекта который обходим (из-за того что размер глав.гер. больше 32*32).
(надеюсь обьяснил понятно, а то уменя мозг уже опух и в голову не помещается)
----------------------------------------
Как от этого избавиться?
Или может какой другой метод есть чтобы реализовать хождение главного героя
Может я просто заморочился и не вижу явного???
Люди я вас умоляю помогите!!!