|
|
|||||
Регистрация: Aug 2011
Сообщений: 13
|
Отследить объект по координатам
Всем привет =) делаю игру в стиле point'n'click.
Задача такая - дана квадратная локация(MovieClip) пустая по середине и персонаж должен пустоту обойти, я кликаю мышкой по конечному пункту назначения, и шарик двигается. public function game() { var goalX,goalY:int; Room.addEventListener(MouseEvent.MOUSE_DOWN,roommousedown); function roommousedown(event:MouseEvent):void { goalX = mouseX; goalY = mouseY; movetimer.start(); } var movetimer:Timer = new Timer(1,10); movetimer.addEventListener(TimerEvent.TIMER, charactermove); movetimer.addEventListener(TimerEvent.TIMER_COMPLETE, timer_reset); function charactermove(event:TimerEvent):void { if(MovieClip(root).Char.x < goalX) {MovieClip(root).Char.x += 2;} if(MovieClip(root).Char.x > goalX) {MovieClip(root).Char.x -= 2;} if(MovieClip(root).Char.y < goalY) {MovieClip(root).Char.y += 2;} if(MovieClip(root).Char.y > goalY) {MovieClip(root).Char.y -= 2;} } function timer_reset(event:TimerEvent):void { movetimer.reset(); movetimer.start() } } Как мне это проверить? |
|
|||||
Гуглите алгоритмы поиска пути.
Или ищите на форуме. Много раз обсуждались. И не используйте вложенных функций. Они тут ни к чему. И имена переменных в ас3 принято писать с маленькой буквы (кивок в сторону Room) Вообще почитайте соглашение по написанию кода
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. Последний раз редактировалось ChuwY; 23.06.2012 в 20:16. |
|
|||||
Регистрация: Aug 2011
Сообщений: 13
|
спасибо за советы, учту, но мне не алгоритм нужен, мне надо чтоб объект понял что белый квадрат это препятствие, например определить что в точке (32;45) есть Movie Clip, а в (34;45) нет. Как это в AS проверить?
|
|
|||||
Регистрация: Mar 2010
Сообщений: 137
|
Цитата:
Цитата:
Например, если выполнять развёртку габаритов игровых объектов на матрицу координат (сетку), будет что-то такое (поиск пути при этом можно будет вести на матрице любым алгоритмом; излюбленный алгоритм для игр, насколько я знаю, А* (А-звёздочка)): Последний раз редактировалось semenyakinVS; 26.06.2012 в 01:05. |
|
|||||
Цитата:
Тогда всё просто, ведь вы знаете координаты всех сторон квадрата (.x, .y, .x+.width, .y+.height) и можете проверить, лежит точка между сторонами или нет. Ну а вобще, hitTestPoint, да. |
|
|||||
.
|
Лучше в модель. Квадрат (MovieClip) имеет Rectangle (MovieClip#getBounds()). Используйте первичное: Rectangle#containsPoint() instead DisplayObject#hitTestPoint().
|
Часовой пояс GMT +4, время: 21:12. |
|
« Предыдущая тема | Следующая тема » |
|
|