2013-08-28 3 views
0

Добрый день,Libgdx: Базовая система баллов

Я пытался создать простую систему баллов для своей игры и столкнулся с проблемой. Мне было интересно, может ли кто-нибудь помочь мне отладить мой код для меня. Прежде всего, проблема, с которой я столкнулся, заключается в том, что мой код повторно отображает мой текущий балл, но каждый раз, когда я вводил команду касания, он перекрывает предыдущий текущий балл.

Что я хотел, чтобы моя программа была в том, что всякий раз, когда она получает команду касания, она добавляет мой балл, а затем печатает его текущую оценку на экране.

Может кто-то помочь мне в отладке моего кода и дать мне простой справочник, который поможет мне в построении моей системы баллов.

вот мой код:

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 

} 

ответ

2

очистить экран перед визуализацией Somthing в противном случае он будет перекрывать старые данные

@Override 
    public void render(float delta) { 
     Gdx.graphics.getGLCommon().glClearColor(1, 0, 0, 1); 
     Gdx.graphics.getGLCommon().glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); 
     score(); 
     btch.begin(); 
     fntscore.draw(btch, "score: " + currscore, 100, 100); 
     btch.end(); 
     // TODO Auto-generated method stub 

    } 
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; 
} 
+0

Я не понимаю. Это то же самое. –

+0

ell justTouched дает вам перезвонить только один раз, когда isTouched дает вам продолжение вызовов, пока не коснется –

0

извините, я не мог получить свой вопрос правильно, вы можете пропустить это,

currscore += score; 

Потому что вы объявляете оценку непосредственно перед и без учета , так что это может помочь.

+0

, это улучшило мой код. однако он все еще печатает и перекрывает мои предыдущие отпечатки. –

+0

Извините, я понятия не имею. – saravanakumar

Смежные вопросы