簡體   English   中英

在libgdx游戲中顯示分數

[英]Displaying score in libgdx game

因此,我無法在自己制作的游戲中保持分數顯示。 我想知道我該怎么做? 這是我到目前為止所擁有的:

package com.catgame.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class CatGame extends ApplicationAdapter implements InputProcessor {
SpriteBatch batch;
Sprite cat;
OrthographicCamera camera;
final float CAT_WIDTH = 0.75f;
final float CAT_HEIGHT = 0.50f;
Sound meow;

int score = 0;
String scorePrint;
BitmapFont scoreFont;


@Override
public void create () {
    batch = new SpriteBatch();
    cat = new Sprite(new Texture(Gdx.files.internal("Cat.png")));
    cat.setSize(CAT_WIDTH,CAT_HEIGHT);
    scoreFont = new BitmapFont(Gdx.files.internal("score.fnt"));
    float aspectRatio = (float)Gdx.graphics.getHeight()/
            (float)Gdx.graphics.getWidth();
    scoreFont.getData().setScale(0.5f);


    camera = new OrthographicCamera(CAT_HEIGHT * aspectRatio,
                                    CAT_HEIGHT);
    camera.position.set(CAT_WIDTH/2,CAT_HEIGHT/2,0);

    meow = Gdx.audio.newSound(Gdx.files.internal("Meow.wav"));

    Gdx.input.setInputProcessor(this);

    scorePrint = "Hello";


}

@Override
public void render () {
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    camera.update();
    batch.begin();
    batch.setProjectionMatrix(camera.combined);
    //cat.draw(batch);
    scoreFont.draw(batch,scorePrint,camera.position.x,camera.position.y);
    batch.end();
}

我已經嘗試過scoreFont.draw()方法,但是它似乎不起作用。 不知道為什么,也許因為我有一個正交相機或其他東西,所以我的定位是錯誤的。 但是,當我嘗試使用繪制字體時,什么也沒出現。 下圖中的紅色圓圈顯示了我想要比分的位置。

http://imgur.com/gallery/ywFF6SZ/new

使用渲染方法繪制字體並更改字體顏色或背景顏色。這可能是因為您的黑色背景顏色與BitmapFont顏色匹配。

您需要在render函數中繪制分數(或您想在屏幕上看到的任何分數),因為每個渲染都會清除畫布並重新繪制。

您繪制的字體太大。 如果在繪制字體之前未指定字體的比例,則會以一個字體像素到一個世界單位的比例繪制字體。 在您的情況下,您的相機高度小於1,因此您只會看到文本中第一個字母的一個像素的一小部分,這很可能是空白。 設置相機后,使用適當的縮放比例將字體縮小到所需大小,然后在字體上調用setScale

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM