Форум 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=202327)

Faust de Morgue 10.07.2013 02:13

расстояние между объектами
 
Здравствуйте.
я пытаюсь создать шутер с видом сверху. ситуация такова:
на данном этапе я "научил" персонажа подбирать предметы с пола.
на следующем этапе я сделал так, чтобы не персонаж перемещался по экрану, а пол перемещался под ним. кроме того я поместил эти предметы внутрь мувиклипа, содержащего пол, чтобы они перемещались вместе с ним.

собственно после этого перестали действовать расчеты расстояния между персонажем и предметом.
хотя я использовал _root. и указал точный адрес. все равно не работает. я проверил и выявил что проблема именно в переменной rasst. но я не понимаю как это исправть.

код висит на объекте.
код такой:
Код AS3:

on (rollOver) {
        //расчитываем расстояние между героем и объектом по теореме пифагора а2 + б2 = с2
        var rasstX = (oil._x - _root.HERO._x)*(oil._x - _root.HERO._x);
        var rasstY = (oil._y - _root.HERO._y)*(oil._y - _root.HERO._y);
        var rasst = Math.sqrt(rasstX + rasstY);
 
        if (rasst < 60) {                // проверяем достаточно ли близко к объекту подошел герой
                oil._x += 400;                // убираем объект с глаз долой
                _root.flag.play();                // оповещение о выполнении задания
                _root.notice.gotoAndPlay ("oil");                // конкретный текст оповещения
        }
}

(чтобы подобрать предмет надо подойти к нему достаточно близко и провести над ним курсором)
(oil - это канистра которую надо подобрать)

iNils 10.07.2013 02:44

1. Синтаксис on (что-то там) устарел, с выходом в марте 2002 года, Flash Player 6 (11 лет назад!). Я серьезно. Это предок динозавров.
2. Для работы с координатами клипов помещенных в другие клипы (а значит все координаты являются относительными к глобальным координатам) используют методы MovieClip.localToGlobal (point) и MovieClip.globalToLocal (point). То есть, приводят локальные координаты к глобальным, производят расчеты, а потом переводят их из глобальных к локальным.


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

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