#android #box2d #andengine #audio
#Android #box2d #andengine #Аудио
Вопрос:
Я разрабатываю платформенную игру с использованием AndEngine. Персонаж продолжает бегать и собирать монеты. Я воспроизводю звук, когда персонаж сталкивается с какой-либо монетой. Он отлично работает, когда монеты расположены в горизонтальной последовательности и находятся на некотором расстоянии друг от друга. Но когда персонаж сталкивается с кучей монет, персонаж дергается, и игра замедляет скорость тела. Скорость персонажа внезапно приближается к нулю.
Спрайт персонажа подключен к физическому телу, и я настраиваю его скорость с помощью body.setLinearVelocity()
метода. Вот как я обнаруживаю столкновение спрайта и монет и воспроизводлю звук.
protected void checkCoinCollisions() {
for(int i = mCoins.size() - 1; i >= 0; i--) {
Coin coin = mCoins.get(i);
if(hero.collidesWith(coin)) {
mCoinsCollected ;
mScene.detachChild(coin);
coinSound.play();
mCoins.remove(coin);
}
}
}
Есть идеи, как устранить это замедление персонажа и рывка?
Комментарии:
1. То есть вы хотите сказать, что если сравнить значение, возвращаемое GetLinearVelocity до и после вызова этой функции, оно отличается?
2. на самом деле, до столкновения с монетами он работает плавно, но после столкновения он внезапно замедляется.
3. Вы уже упоминали об этом. Я говорю о значении, возвращаемом GetLinearVelocity … меняется ли оно после вызова checkCoinCollisions?