0

別のスコアと衝突したときにスプライト(画像)があり、スコアは10ずつ増加する必要があります。関連するコードは更新メソッドで指定されますが、これの代わりにランダムに増加します。これが私のコードです。

public void update(float dt)
{
    LinkedList<CCSprite> projectilesToDelete = new LinkedList<CCSprite>();
    for (CCSprite projectile : _projectiles)
    {
        CGRect projectileRect = CGRect.make(projectile.getPosition().x - (projectile.getContentSize().width / 2.0f),
                                            projectile.getPosition().y - (projectile.getContentSize().height / 2.0f),
                                            projectile.getContentSize().width,
                                            projectile.getContentSize().height);



        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);

            if (CGRect.intersects(projectileRect, targetRect))
                targetsToDelete.add(target);
            myscore += 10;
            showLabel(myscore);


        }
4

2 に答える 2

3

myscore を 10 増やした後、次のように更新する必要があります

myscore += 10; 
updateTable(myscore); 
showLabel(myscore); 
addTarget(); 
于 2013-06-21T09:20:31.003 に答える
1

スコアの増加は、次の場合の範囲内である必要があります。

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);

    if (CGRect.intersects(projectileRect, targetRect)){
        targetsToDelete.add(target);
        myscore += 10;
        showLabel(myscore);
    }
}
于 2013-05-17T05:39:44.100 に答える