Цитата:
Сообщение от VVall
Если персонаж поворачивает от краёв платформы, то он не может упасть с платформы. Если он не может упасть, зачем проверять наличие платформы под ним? Пусть ходит от маркера до маркера, хоть в воздухе, хоть где.
|
Я проверяю наличие платформы под ним чтобы по ней узнать в каких пределах ему можно ходить (до её концов).
Возникла другая проблема.

Код AS3:
// Проверяем где бокс моба
p.x=this.x;
p.y=this.y+this.height/2+1;
mobbox=stage.getObjectsUnderPoint(p);
Получили ссылку на бокс,типа [shape] отлично.
Проверяю пересечение с маркером моба (маркер нарисован программно, trace показывает что маркер тоже типа [shape]:

Код AS3:
if(markerLM.hitTestObject(mobbox))
{
goleft=false;
goright=true;
}
И получаю ошибку преобразования типов:
TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать []@2a27a779 в flash.display.DisplayObject. at game::Mob/UpdateWorld()
Вместо билеберды "[]@2a27a779" каждый кадр разный набор символов.
Хотя обе вещи [shape] судя по ошибке это не так..
Пробывал явно указать что:
public var mobbox:Shape;
не помогло, только меняется ошибка:
TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать []@16cdcf59 в flash.display.
Shape. at game::Mob/UpdateWorld()
Подскажите как поправить?
Добавлено через 29 минут
Разобрался) getObjectsUnderPoint возвращает массив, надо брать [0]
Добавлено через 39 минут
НОВАЯ ПРОБЛЕМА:
Когда один моб все нормально, он определяет свою стенку (даже если их несколько) и по ней правильно ездит. А когда добавляю второго моба начинаются ошибки:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".at game::Mob/UpdateWorld()
И работает только первый. Помоги пожалуйста что нетак.