java - 如何修复 libgdx 项目上的此错误?

标签 java android android-studio libgdx

有人知道为什么在 android studio 中它会变成红色或错误以及如何修复它吗?

这是代码

package com.appalyse.deliopblaster;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;


public class MyGdxGame extends ApplicationAdapter implements InputProcessor {

    private SpriteBatch batch;
    private BitmapFont font;
    private int screenWidth, screenHeight;
    private String message = "Touch me";

    @Override
    public void create () {
         batch = new SpriteBatch();

         screenWidth = Gdx.graphics.getWidth();
         screenHeight = Gdx.graphics.getHeight();

         font = new BitmapFont();
         font.setColor(Color.GREEN);
         font.getData().scale(5);

         Gdx.input.setInputProcessor(this);
    }

    @Override
    public void dispose() {
        batch.dispose();
        font.dispose();
    }

    @Override
    public void render () {strong text
        Gdx.gl.glClearColor(1, 1, 1, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        BitmapFont.*TextBounds*  = font.*getBounds*(message);
        float x = screenWidth/2 - *textSize*.width/2;
        float y = screenHeight/2 + *textSize*.height/2;

        batch.begin();
        font.draw(batch, message, x, y);
        batch.end();
    }

    @Override
    public boolean touchDown(int screenX, int screenY, int pointer, int button) {
        message = "Touch down at " + screenX + ", " + screenY;
        return true;
    }

    @Override
    public boolean touchUp(int screenX, int screenY, int pointer, int button) {
        message = "Touch up at " + screenX + ", " + screenY;
        return true;
    }

    @Override
    public boolean touchDragged(int screenX, int screenY, int pointer) {
        //message = "Dragging at" + screenX + ", " + screenY;
        return true;
    }

    @Override
    public boolean keyDown(int keycode) {
        return false;
    }

    @Override
    public boolean keyUp(int keycode) {
        return false;
    }

    @Override
    public boolean keyTyped(char character) {
        return false;
    }

    @Override
    public boolean mouseMoved(int screenX, int screenY) {
        return false;
    }

    @Override
    public boolean scrolled(int amount) {
        return false;
    }

}

它变成错误

BitmapFont.*TextBounds*  = font.*getBounds*(message);
            float x = screenWidth/2 - *textSize*.width/2;
            float y = screenHeight/2 + *textSize*.height/2;

TextBounds、getBounds 和 textSize 错误

我想知道修复方法。

最佳答案

1.Javascript和Java是不同的语言。所以你的标签应该被删除。

2.Java 没有像您那样有效的 * 语法。 * 仅用于乘法目的。

3.libGDX 1.6 中字体处理发生了巨大变化。 “getBounds()”方法不再存在。要获取文本的宽度和高度,请尝试以下操作:

GlyphLayout glyphLayout = new GlyphLayout();
glyphLayout.setText(font, message);

float x = screenWidth/2 - glyphLayout.width/2;
float y = screenHeight/2 + glyphLayout.height/2;

关于java - 如何修复 libgdx 项目上的此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32744560/

相关文章:

android - 在不同的计算机上处​​理同一个项目迫使我卸载应用程序

java - 使用 Java Bouncy CaSTLe 列出服务器支持的密码套件

java - 如何在jsp中检查JAVA变量${account}?

java - 无法使 SHA1 在 Android java 中正常工作

Android CI 构建 : Could not find aapt2-proto. jar

java - 我无法在我的 ddms 中查看任何文件夹(或将其显示为空) - 在数据/数据处 - 即使文件路径保存到该位置

java - System.out.printf 方法抛出标志异常

java - 错误 : package com. google.common.base 不存在

java - 暂停 Kotlin-Android 中正在进行的用户交互迭代过程

android - MainActivity.java 中没有 PlaceholderFragment 类