У меня очень простая игра, в которой я играю, построенная на примере прикосновения/физики. В основном, что происходит, когда вы касаетесь экрана, он создает форму с телом и отскакивает вокруг с помощью box2d. Теперь то, что я хотел бы сделать, это когда этот конкретный спрайт сталкивается с чем-либо вообще, он изменит текущий кадр на «1» на мгновение, а затем вернется к оригиналу.Обновлен только столкнувшийся спрайт
У меня это работает, но всякий раз, когда любой спрайт сталкивается с чем-либо, он обновляет только недавно созданный спрайт. Это мое обнаружение столкновения:
private ContactListener createContactListener()
{
ContactListener contactListener = new ContactListener()
{
@Override
public void beginContact(Contact contact) {
face.animate(new long[] { 50, 10}, new int[] {1, 0}, 0);;
}
@Override
public void endContact(Contact contact) {
}
@Override
public void preSolve(Contact contact, Manifold oldManifold) {
}
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
}
};
return contactListener;
}
Как я уже сказал, я думаю, что я близок. Я просто не могу понять, как это понять. Спасибо!
Я не думаю, что у вас есть достаточно информации здесь. Что такое лицо? и как он хранится? Вероятно, у вас есть что-то статическое в классе, которого вы не ожидаете. – HalR
Лицо - спрайт с прикрепленным к нему телом. Когда сцена создается, она создает физический мир, а гравитация следует за акселерометром. Когда вы касаетесь в любом месте экрана, он создает «лицо» и его тело, и они отскакивают. Итак, когда вы касаетесь сцены 5 раз, вы делаете 5 лиц. Я хотел, чтобы каждый, столкнувшись с чем-либо, переключился на другой кадр на короткое время, а затем вернулся к исходному фрейму. – Cyanocobalamin