2013-11-30 7 views
0

Я делаю платформу с движущейся камерой, а у игрока есть датчики, чтобы определить, где он должен быть размещен, чтобы быть на вершине платформ, всякий раз, когда его склоны или просто простой пол. Когда камера не двигается, датчики следуют за игроком должным образом, но когда камера движется, чтобы зацепиться за плеер, датчики следуют за задержкой, и кажется, что та самая точка, которую они делают, принимая предыдущую камеру кадра координаты, даже если функция камеры перед работой датчиков. Я думаю, что hittestpoint can not имеет дело только с координатами x, y, и ему нужен фактический объект, чтобы появиться на сцене, а затем взять его координаты. я прав? будет не просто просто поместить функцию камеры после функции датчика, потому что тогда датчики будут находиться в задержке все время. Что мне делать? Я действительно застрял.AS3 - я застрял в hittestpoint

это функция датчика:

function setSensors(sensor, location):void { 
var hx = Math.round(player.x + location * Math.cos(0.01745329 * player.rot)); 
var hy = Math.round(player.y + location * Math.sin(0.01745329 * player.rot)); 
player[sensor.name] = false; 
var a = 0; 
while (a <= 21) { 
    sensor.x = Math.round(hx + a * Math.cos(0.01745329 * (player.rot + 90))); 
    sensor.y = Math.round(hy + a * Math.sin(0.01745329 * (player.rot + 90))); 
    if (blocks.hitTestPoint(sensor.x, sensor.y, true)) { 
     player[sensor.name] = true; 
     break; 
    } 
    a = a + 1; 
}} 

ответ

0

hitTestPoint работает в координатах сцены, так что вы, вероятно, следует преобразовать player's позицию в глобальной первой. Что-то вроде:

var playerGlobalPos:Point = player.localToGlobal(new Point); // player.x/y in stage coords 
var hx = Math.round(playerGlobalPos.x + location * Math.cos(0.01745329 * player.rot)); 
var hy = Math.round(playerGlobalPos.y + location * Math.sin(0.01745329 * player.rot)); 
+0

На другой ноте, вы должны отлаживать рисовать 'sensor' позиции - это поможет с выяснить, что происходит не так – divillysausages

+0

игрок уже находится в стадии координат – user2924130

+0

я на самом деле не знаю, почему положение камеры влияет на ваши датчики - неужели они для столкновения игроков? положение камеры не должно иметь значения. нарисовать 'sensor.x' и' sensor.y' каждый кадр, чтобы увидеть, где они находятся - это поможет вам определить, где ошибка – divillysausages

Смежные вопросы