在cocos2d-android中的CGRect sprites问题

时间:2013-06-25 10:27:49

标签: android cocos2d-iphone ccsprite cocos2d-android

在我的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);

    }

}

1 个答案:

答案 0 :(得分:0)

您的代码处于更新循环中,这样您每次都会将循环添加到循环中。它实际上会删除您可能看不到效果。从更新代码中取出添加船只的代码并将其放入初始化代码中,使船舶精灵全局化,然后检查交叉点。