Я использую обработчик времени для создания спрайтов в Andengine.Обнаружение столкновения созданного спрайта TimeHandler
Теперь я хочу обнаружить столкновение между этими спрайтами и другими спрайтами в той же Сцене.
Я попытался использовать приведенный ниже код, но он не работал должным образом.
Есть ли другой способ обнаружения столкновения?
//method to create sprite
public void add()
{
mFaceCount++;
Random rand = new Random();
int x = (int) CAMERA_WIDTH + mb1.getWidth();
int minY = mb1.getHeight();
int maxY = (int) (CAMERA_HEIGHT/2 - mb1
.getHeight());
int rangeY = maxY + minY;
// int y = rand.nextInt(280) + 320;
int y=rand.nextInt(350-280) + 280;
int minDuration = 2;
int maxDuration = 3;
int rangeDuration = maxDuration - minDuration;
int actualDuration = rand.nextInt(rangeDuration) + minDuration;
if(this.mFaceCount%2==0)
{
targetSprite =new Sprite(x,y,mb4.clone());
mScene.attachChild(b1);
B1= PhysicsFactory.createBoxBody(this.mPhysicsWorld, b1, BodyType.KinematicBody, FIXTURE_DEF);
}
else if(this.mFaceCount%3==0)
{
targetSprite =new Sprite(x,y,mb2.clone());
mScene.attachChild(b1);
B1= PhysicsFactory.createBoxBody(this.mPhysicsWorld, b1, BodyType.KinematicBody, FIXTURE_DEF);
}
B1.setLinearVelocity(-5, 0);
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(b1, B1, true, false)
{
@Override
public void onUpdate(float pSecondsElapsed)
{
super.onUpdate(pSecondsElapsed);
}
});
}
// time handler
private void createSpriteSpawnTimeHandler(){
TimerHandler spriteTimerHandler;
float mEffectSpawnDelay = 2f;
spriteTimerHandler = new TimerHandler(mEffectSpawnDelay,true,new ITimerCallback(){
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
add();
}
});
getEngine().registerUpdateHandler(spriteTimerHandler);
}
//update handler to detect collision
IUpdateHandler updateHandler = new IUpdateHandler()
{
@Override
public void reset() { }
@Override
public void onUpdate(final float pSecondsElapsed)
{
if (hanger.collidesWith(targetSprite))
{
System.out.println("Collision);
;
}
}
};
«Я пытался, но не работал» Хорошо, вы показываете некоторые усилия к разрешению проблема, но нам нужно посмотреть, что вы пробовали, потому что мы не можем иначе сказать вам, что такое ДРУГИЕ способы. –
см. Http://sscce.org/, чтобы узнать, как опубликовать код, связанный с вашим вопросом. –
thnks ... Но знаете ли вы решение по этому вопросу? –