2012-04-20 3 views
0

Я новичок в и-двигателе, так как работаю с ним с быстрой двух недель. Я разрабатываю игру с мячом. Мое требование следующее: когда мяч коснется тела земли во второй раз, он должен получить уничтожение. Я пробовал с обработчиком обновлений на спрайте с шариком, его работая отлично, когда счет достигает 2 (я явно вызываю удаление логики). В то время, когда он касается основного тела, я разрушаю тело шара с помощью счетчика в обработчике Update() , К сожалению, в первый раз также (количество достигает 2 при первом столкновении) тело разрушается. Выше сценарий повторяется часто, работает с прослушивателем контактов, но без изменений. Любая помощь будет оценена.AndEngine: update handler on sprite

@Override 
public void onUpdate(float pSecondsElapsed) { 
Shape path = new Rectangle(ballSprite.getX(),ballSprite.getY(), 10, 10); 
if (ballCount <= 2) { 
       mScene.attachChild(path); 
       pathCoordinates.add(path); 
       dumpPathCoordinates.add(path); 
      } 
      if (ballSprite.collidesWith(ground)) { 
       ballCount++; 
       if (ballSprite.collidesWith(ground) && ballCount == 2) { 
        removePath(); 
        removeBall(ballSprite); 
        addFace(10, 10); 
       } 
      } 
     } 
+0

Пожалуйста, введите код. Это облегчит понимание проблемы. – JohnEye

+0

@JohnEye Я разместил код здесь. –

ответ

1

Возможно ли, что первое касание длится дольше, чем одна итерация двигателя? Если это так, вам нужно разрешить удаление шара только в том случае, если эта последовательность происходит touching->not touching->touching. Пока мяч удаляется, даже если последовательность touching->still touching.

+0

Благодарим за ответ Джона, но он ведет себя по-разному для каждой итерации двигателя, в то время как отслеживание в лог-коте для первого подсчета очков увеличивается, а во второй раз по сторонам он увеличивается в два раза. Для третьей итерации она может увеличиваться или не увеличиваться дважды ... она продолжается так. Много времени для анализа поведения. Но бесполезно, какими могут быть альтернативы? –

+0

Я думаю, что то, что вы описали, по-прежнему согласуется с тем, что я сказал - прикосновение может длиться более чем на одну итерацию, поэтому счетчик увеличивается более одного раза за одно касание. Если вы добавите условие, что следующему касанию должно предшествовать хотя бы одна итерация, не касаясь, счетчик должен работать правильно, независимо от того, сколько итераций длится один раз. – JohnEye

+0

Я не могу вас достать, не могли бы вы прояснить это? –

Смежные вопросы