标签覆盖标签,同时在cocos2d android中显示健康标签

时间:2013-03-08 18:09:07

标签: android cocos2d-iphone cocos2d-android

我必须在游戏中展示palyers生活。每当玩家击中错误的敌人时,生命就会减少。默认生命是5。

我的代码如下

首先我在游戏中声明这个

static int lifes=5;
CCLabel _lifes;

然后在代码底部的方法如下

public void showLable(CCLabel _lifes){


     if(_lifes != null){
            this.removeChild(_lifes,true);
        }

     _lifes = CCLabel.makeLabel("" + lifes, "Verdana", 20);
        _lifes.setColor(ccColor3B.ccbrown);
        _lifes.setPosition(winSize.width/2,(winSize.height/2));
        addChild(_lifes,3)
    }

然后我写了这个条件,玩家击中了错误的敌人

lifes--;
showLable(_lifes);

1)一切正常,标签显示,标签减少,但标签不会出现,直到玩家击中错误的敌人,因为你看到我给了默认值5,标签出现在玩家点击后错误的敌人,即从4开始。

2)另一个主要问题是显示的标签显示时没有删除以前的值。对于前者生命是默认的5。当游戏开始时显示图5。当生命减少时,生命值应为4,所以在我的游戏中,4本身就是5。 然后生命被放置在3或2或1的相同数字上。所有的数字都显示在彼此上。现在我想你了解我

提前致谢

1 个答案:

答案 0 :(得分:0)

1)检查您在游戏初始化后是否在游戏开始时调用showLable(_lifes);,因此标签显示的值为5.

2)我不太确定,但 CCLabel 应扩展 CCSprite ,因此有一个setVisible方法。 你可能会尝试类似的东西:

    if(_lifes != null){
        _lifes.setVisible(false);
        this.removeChild(_lifes,true);
    }

我只找到了c ++ api参考版本: http://www.cocos2d-x.org/reference/native-cpp/d4/de7/classcocos2d_1_1_c_c_sprite.html