簡體   English   中英

如何在libgdx項目上修復此錯誤?

[英]How to fix this error on libgdx project?

有人知道為什么它會在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.Java語言和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;

暫無
暫無

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

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