我正在开发一个使用 jbox2d 和 jBox2d for android 的游戏。我想检测用户是否触摸了我世界中各种物体中的特定动态物体。我曾尝试遍历所有身体并找到我的兴趣之一,但它对我不起作用。请帮助继承人我做了什么:
@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 freed 1649K, 14% free 11130K/12935K, paused 1ms+2ms 一切都进入挂起状态。