Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Подскажите (http://www.flasher.ru/forum/showthread.php?t=71573)

BloodyX 08.11.2005 20:12

Подскажите
 
Есть человечек (player), есть карта (матрица - 0 - можно идти, 1 - стена). Убив пару вечеров сделал методом волновых итераций, чтоли, нахождение кратчайшего пути и уложение его (путь) в массив. Т.е. теперь я знаю сколько ходов понадобится человечку чтобы дойти до конечной цели и собственно сам путь. И на этом месте моя фантазия кончилась. Мне то необходимо чтобы человечек плавно смещался, идя по пути который у меня в массиве.Ну тоесть он на самом деле подвинулся только на одну клетку в матрице, а анимация была что он шел, а не просто перепрыгнул.

Skubent 09.11.2005 12:11

Делаешь мувик размером с две твои клетки. В этом мувике человечек твой и идет.
Ну и поворачивай его в нужную сторону.

Kyber Anton 09.11.2005 14:06

Цитата:

Сообщение от Skubent
Делаешь мувик размером с две твои клетки. В этом мувике человечек твой и идет.
Ну и поворачивай его в нужную сторону.

Не, по-моему, надо так:
1.Ты знаешь, какое количество контрольных точек нужно пройти челу.
2.знаешь расстояние между двумя соседними точками(оно одинаково).
- обнулить ПРОЙДЕННЫЕ точки (переменная)
В событии onEnterFrame тебе нужно сделать:
- проверить, не дошёл ли чел до след. контр. точки(по координате или по времени)
- если дошёл, то прибавить к ПРОЙДЕННЫМ 1 и узнать направление движения к след. точке(задать новые скорость_х, скорость_у), а также развернуть клип чела.
- если ПРОЙДЕННЫЕ совпали с общим кол-вом, то дошёл чувак, можно остановить клип с ходьбой
- скорость тогда желательно сделать кратной расстоянию между клетками ( например, размер ячейки 10, скорость - 2, чтоб ровно за 5 кадров дошёл)


Часовой пояс GMT +4, время: 10:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.