Android用のjBox2dと組み合わせてjbox2dを使用してゲームを開発しています。ユーザーが私の世界のさまざまな体の中で特定の動的体に触れたかどうかを検出したいと思います。私はすべての体を繰り返し試して、興味のあるものを見つけましたが、うまくいきませんでした。私がやったことHeresを助けてください:
@Override
public boolean ccTouchesEnded(MotionEvent event)
{
CGPoint location = CCDirector.sharedDirector().convertToGL(CGPoint.ccp(event.getX(),
event.getY()));
for(Body b = _world.getBodyList();b.getType()==BodyType.DYNAMIC; b.getNext())
{
CCSprite sprite = (CCSprite)b.getUserData();
if(sprite!=null && sprite instanceof CCSprite)
{
CGRect body_rect = sprite.getBoundingBox();
if(body_rect.contains(location.x, location.y))
{
Log.i("body touched","<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
expandAndStopBody(b);
break;
}
}
}
return true;
}
タッチ後、システムは GC_CONCURRENT 解放された 1649K、14% 解放された 11130K/12935K を出力し続け、1ms+2ms 一時停止し、すべてがハング状態になります。