[AS3][Физика затылка] Как получить доступ к связанному объекту тела затылка в InteractionListener?
Мне нужна помощь с физическим движком Nape в AS3. У меня есть класс с некоторыми прямоугольниками (телами затылка) в качестве переменных-членов. У меня есть InteractionListener, который реагирует, когда эти прямоугольники взаимодействуют с некоторыми кругами (также телами затылка) в сцене. Однако мне нужно получить доступ к экземпляру класса, частью которого является прямоугольник, при обработке столкновения внутри InteractionListener. В экземпляре класса есть несколько методов, которые мне нужно вызвать. Как я могу это сделать?
public function foodInteraction(callback:InteractionCallback):void {
Food.list.remove(Body(callback.int1));
Universe.space.bodies.remove(Body(callback.int1));
// callback.int2 is part of class Organism,
// need to access that organism and call organism33.eat();
}
У меня динамическое количество экземпляров организма. Каждый организм имеет динамическое количество прямоугольников. Это только первый прямоугольник, который взаимодействует. Единственное решение, которое я вижу сейчас, - это иметь все взаимодействующие прямоугольники в отдельном списке вместе со списком всех экземпляров организма, а затем получить доступ к организму через индекс прямоугольника в другом списке. Но было бы гораздо быстрее получить доступ к организму через некоторые пользовательские данные в теле прямоугольника... Я не смог расширить тело, потому что это последний класс. Пожалуйста помоги!
1 ответ
Ненавижу, когда нахожу решение секунды после того, как спрашиваю об этом. Если кто-то еще заинтересован в решении:
Сохраните экземпляр следующим образом: body.userData.organism = организма;
Затем получите к нему доступ: callback.int2.userData.organism.foo();