Faust de Morgue
10.07.2013, 02:13
Здравствуйте.
я пытаюсь создать шутер с видом сверху. ситуация такова:
на данном этапе я "научил" персонажа подбирать предметы с пола.
на следующем этапе я сделал так, чтобы не персонаж перемещался по экрану, а пол перемещался под ним. кроме того я поместил эти предметы внутрь мувиклипа, содержащего пол, чтобы они перемещались вместе с ним.
собственно после этого перестали действовать расчеты расстояния между персонажем и предметом.
хотя я использовал _root. и указал точный адрес. все равно не работает. я проверил и выявил что проблема именно в переменной rasst. но я не понимаю как это исправть.
код висит на объекте.
код такой:
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 - это канистра которую надо подобрать)
я пытаюсь создать шутер с видом сверху. ситуация такова:
на данном этапе я "научил" персонажа подбирать предметы с пола.
на следующем этапе я сделал так, чтобы не персонаж перемещался по экрану, а пол перемещался под ним. кроме того я поместил эти предметы внутрь мувиклипа, содержащего пол, чтобы они перемещались вместе с ним.
собственно после этого перестали действовать расчеты расстояния между персонажем и предметом.
хотя я использовал _root. и указал точный адрес. все равно не работает. я проверил и выявил что проблема именно в переменной rasst. но я не понимаю как это исправть.
код висит на объекте.
код такой:
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 - это канистра которую надо подобрать)