AndEngine Sound.play () уменьшает скорость тела

#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?