繁体   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