0

良い一日、

ゲーム用の単純なスコア システムを作成しようとしていて、問題が発生しました。誰かが私のコードをデバッグするのを手伝ってくれるかどうか疑問に思っていました。まず第一に、私が遭遇した問題は、コードが現在のスコアを繰り返し表示することですが、タッチ コマンドを入力するたびに以前の現在のスコアと重なってしまうことです。

私がプログラムに実行させたかったのは、タッチ コマンドを受信するたびにスコアを追加し、現在のスコアを画面に出力することです。

誰かが私のコードのデバッグを手伝ってくれて、私のスコアシステムを構築するのに役立つ簡単なガイドを教えてくれませんか.

ここに私のコードがあります:

Timer time;
SpriteBatch btch;
int score=0,currscore = 0;
BitmapFont fntscore = new BitmapFont(Gdx.files.internal("fonts/pressstartk16white.fnt"),false);

public void score()
{
    if(Gdx.input.isTouched())
    {
        score += 20;
        System.out.print("score: " + score + "\n" );
        currscore = score;
        return;
    }
    else if(Gdx.input.isKeyPressed(Keys.S))
    {
        score +=30;
        System.out.print("score: "+ score + "\n");
        currscore = score;
        return;

    }
}

@Override
public void render(float delta) {

    score();
    btch.begin();
    fntscore.draw(btch, "score: " + currscore, 100, 100);
    btch.end();
    // TODO Auto-generated method stub

}
4

3 に答える 3

0
if(Gdx.input.isTouched())
{
    score += 20;
    System.out.print("score: " + score + "\n" );
    currscore = score;
    return;
}

に変更します

if(Gdx.input.justTouched())
{
    score += 20;
    System.out.print("score: " + score + "\n" );
    currscore = score;
    return;
}
于 2013-08-28T11:42:13.587 に答える
0

申し訳ありませんが、あなたの質問を正しく理解できませんでした。これを見逃す可能性があります。

    currscore += score;

currscore ではなく直前にスコアを宣言するため、これが役立つ場合があります。

于 2013-08-28T11:52:33.490 に答える