簡體   English   中英

Libgdx類不繪制紋理

[英]Libgdx class does not draw Texture

當我觸摸手機的屏幕時,我試圖從“ germans.java”類中的“ MainGameScreen.java”類中繪制游戲角色。
不幸的是,我的程序沒有繪制圖像,也沒有給我警告或錯誤。

MainGameScreen.java:

import com.daenni.trenchwarfare.mygdx.enteties.germans;

public class MainGameScreen implements Screen, InputProcessor {

Trench_Warfare game;


public SpriteBatch batch;

//Enemies
ArrayList<germans> german;

public MainGameScreen (Trench_Warfare game) {
    this.game = game;
    batch = new SpriteBatch();

    //Enemies
    //Initialise Array
    german = new ArrayList<germans>();
}

@Override
public void render(float delta) {

    //Colours
    Gdx.gl.glClearColor(116/255f,102/255f,91/255f,1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    //Create Germans

    if (Gdx.input.justTouched()){
        german.add(new germans(300));
        german.add(new germans(400));
    }

    //Update Germans
    for (germans german : german) {
        german.update(delta);
    }

    game.batch.begin();


    //Render Germans
    for (germans germans : german) {
        germans.render(game.batch);
    }

    //Background
    game.batch.draw(background,0,0);
    game.batch.draw(background_links,-background_links.getWidth(),0);
    game.batch.draw(background_rechts,background.getWidth(),0);

    game.batch.end();
}

這是我用來在“ MainGameScreen.java”文件中呈現它的所有代碼。

這是我的課:

public class germans {
    //Set speed
    public static final int speed = 25;

    //Constant
    public static final int default_x = 300;

    //Every german uses the same Texture
    private static Texture texture;

    //Position
    float x, y;

    public boolean remove = false;

    //Create german
    public germans(float y) {
        this.x = default_x;
        this.y = y;
        y = 200;

        if (texture == null) { //When texture is never loaded
            //Set Texture
            texture = new Texture("de_s1_default.png");
        }
    }

    public void update (float deltaTime){
            x += speed * deltaTime;
    }

    public void render (SpriteBatch batch) {
        batch.draw(texture,x,y);
    }

}

盡管我不喜歡libgdx的工作原理,但我可以肯定,首先繪制您的“ germans”,然后背景不是您想要的。

嘗試將其交換:

//Background
game.batch.draw(background,0,0);
game.batch.draw(background_links,-background_links.getWidth(),0);
game.batch.draw(background_rechts,background.getWidth(),0);

    //Render Germans
for (germans germans : german) {
    germans.render(game.batch);
}

暫無
暫無

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

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