在我的cocos2d-android游戏项目中,随机数量的目标从顶部表面落到船上,当两个相交的船都应该被删除时,我已经完成了编码,但“船只”没有被删除。是不会删除CGRect精灵?有人知道吗?
LinkedList<CCSprite> targetsToDelete = new LinkedList<CCSprite>();
for (CCSprite target : _targets)
{
CGRect targetRect = CGRect.make(target.getPosition().x - (target.getContentSize().width),
target.getPosition().y - (target.getContentSize().height),
target.getContentSize().width,
target.getContentSize().height);
CCSprite ship = CCSprite.sprite("ship150.png");
ship.setPosition(CGPoint.ccp(30,200));
ship.setAnchorPoint(CGPoint.ccp(0,0));
ship.setTag(25);
addChild(ship);
// ship.setVisible(false);
CGRect shipRect = CGRect.make(ship.getPosition().x - (ship.getContentSize().width/2),
ship.getPosition().y - (ship.getContentSize().height/2),
ship.getContentSize().width,
ship.getContentSize().height);
System.out.println("ships to delete continue... : " + volume);
if (CGRect.intersects(targetRect, shipRect))
{
System.out.println("ships intersected:)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@... : " + volume);
removeChildByTag(25, false);
}
}
答案 0 :(得分:0)
您的代码处于更新循环中,这样您每次都会将循环添加到循环中。它实际上会删除您可能看不到效果。从更新代码中取出添加船只的代码并将其放入初始化代码中,使船舶精灵全局化,然后检查交叉点。