1

ゲームでプレイヤーのライフを表示する必要があります。プレイヤーが間違った敵を攻撃するたびにライフが減少します。デフォルトのライフは 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) もう 1 つの大きな問題は、表示されるラベルが以前の値を削除せずに表示されていることです。例のために。ライフはデフォルトで5です。ゲーム開始時に5が表示されます。ライフが減少すると、ライフの値は 4 になるはずです。したがって、ここで私のゲームでは、4 は 5 自体に置かれます。そして、ライフは 3 または 2 または 1 と同じ数字に置かれます。すべての数字は互いに表示されます。今、あなたは私を理解していると思います

前もって感謝します

4

1 に答える 1

0

showLable(_lifes);1)初期化後のゲームの開始時に呼び出していることを確認して 、ラベルが値 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

于 2013-03-08T19:56:48.997 に答える