Tidak dapat membuat animasi di libgdx

Saya mencoba membuat animasi tetapi tetap mendapatkan kesalahan

package com.leopikinc.bobdestroyer;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Animation;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;

public class MainMenu implements Screen{

    Texture background_main;
    TextureRegion[] background_textures;
    Animation background_animation;
    SpriteBatch batch;
    TextureRegion current_frame; 
    float stateTime;
    BobDestroyer game;

    public MainMenu(BobDestroyer game){
       this.game = game;
}

    @Override
    public void show() {
        background_main = new Texture(Gdx.files.internal("main_menu_screen/Background.png"));
        //TextureRegion[][] temp = new TextureRegion.split(background_main, 128, 72);
        //background_textures = new TextureRegion[3];
        for(int i = 0; i<3; i++){
            background_textures[i] = new TextureRegion(background_main,0, 0+72*i, 128, 72+72*i);
        }
        background_animation = new Animation(0.2f,background_textures);
    }

    @Override
    public void render(float delta) {
    //  Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
        stateTime += Gdx.graphics.getDeltaTime(); 
        current_frame = background_animation.getKeyFrame(stateTime, true);
        batch.begin();
            batch.draw(current_frame, 0, 0);
        batch.end();
    }

    @Override
    public void resize(int width, int height) {

    }

    @Override
    public void pause() {

    }

    @Override
    public void resume() {

    }

    @Override
    public void hide() {

    }

    @Override
    public void dispose() {

    }

}

ini kode saya dan kemudian saya mencoba meluncurkannya, saya mengerti

Pengecualian di thread "Aplikasi LWJGL" java.lang.NullPointerException di com.leopikinc.bobdestroyer.MainMenu.show(MainMenu.java:31) di com.badlogic.gdx.Game.setScreen(Game.java:61) di com.leopikinc .bobdestroyer.BobDestroyer.create(BobDestroyer.java:11) di com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:143) di com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run( LwjglApplication.java:120)

Bagaimana cara memperbaikinya? Dan juga ketika saya menggunakan TextureRegion[][] temp = new TextureRegion.split(background_main, 128, 72);Eclipse katanya

TextureRegion.split tidak dapat diselesaikan ke suatu tipe


person Leopik    schedule 04.07.2015    source sumber
comment
Anda mengomentari baris tempat Anda membuat instance array TextureRegion sehingga nilainya nol. Mengenai pertanyaan kedua Anda, Anda perlu menghilangkan kata baru.   -  person Tenfour04    schedule 05.07.2015


Jawaban (1)


TextureRegion.split tidak dapat diselesaikan ke suatu tipe

Anda mendapatkan kesalahan karena Anda menggunakan kata kunci new

Lakukan sesuatu seperti ini dan kesalahan Anda akan diperbaiki

 TextureRegion[][] tmp = TextureRegion.split(background_main, background_main.getWidth()/TOTAL_COLS, background_main.getHeight()/TOTAL_ROWS);

Kesalahan kedua Anda adalah karena Anda telah mengomentari baris tempat Anda menginisialisasi array, Anda perlu menghapus komentar ini

//background_textures = new TextureRegion[3];
person Sneh    schedule 05.07.2015