1

このエラーが発生し続けます:

「タイプ MainMenu は、継承された抽象メソッド ApplicationListener.render() を実装する必要があります」

私のコード: パッケージ com.gdx.game.Screens;

import java.util.ArrayList;
import aurelienribon.tweenengine.BaseTween;
import aurelienribon.tweenengine.Tween;
import aurelienribon.tweenengine.TweenCallback;
import aurelienribon.tweenengine.TweenEquations;
import aurelienribon.tweenengine.TweenManager;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.gdx.game.Asteroid;
import com.gdx.game.TweenAccessors.SpriteTween;

public class MainMenu implements  ApplicationListener, Screen
{
//private Boolean isMain = false;                   //Boolean to check if the menu screen can exit
private Texture menuTexture;                    //Splash screen image
private Sprite  menuSprite;                 //Image manipulation
private SpriteBatch batch;                      //Container to bundle Sprites to speed up performance
private Asteroid game;              
private TweenManager manager;                   //Updates all tweens at once
private TweenCallback callBack;     

//SplashScreen constructor
public MainMenu(Asteroid game)
{
    this.game = game;
}

@Override
public void render(float delta) 
{

    Gdx.gl.glClearColor(0,0,0,1);                   //Set color to black
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);       //Clear the color
    manager.update(delta);
    //Begin drawing
    batch.begin();

    if((Gdx.input.isKeyPressed(Keys.ENTER)))
    {
        batch.dispose();
        //game.setScreen(gameClass(game));
    }

    menuSprite.draw(batch);

    //End drawing
    batch.end();
}

私はまだ自分のコードを実行できますが、試してEnterキーを押すと終了し、エラーが発生します:

Exception in thread "LWJGL Application" java.lang.IllegalArgumentException: buffer not allocated with newUnsafeByteBuffer or already disposed
at com.badlogic.gdx.utils.BufferUtils.disposeUnsafeByteBuffer(BufferUtils.java:277)
at com.badlogic.gdx.graphics.glutils.VertexArray.dispose(VertexArray.java:71)
at com.badlogic.gdx.graphics.Mesh.dispose(Mesh.java:415)
at com.badlogic.gdx.graphics.g2d.SpriteBatch.dispose(SpriteBatch.java:1094)
at com.gdx.game.Screens.MainMenu.render(MainMenu.java:50)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.gdx.game.Asteroid.render(Asteroid.java:24)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:202)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:131)
AL lib: ReleaseALC: 1 device not closed

何か案は?

4

1 に答える 1

1

これはrender、ApplicationListener で定義されたメソッドではありません。

@Override
public void render(float delta)

実際のrender メソッドには引数がありません。

@Override アノテーションがトリガーされたという警告がエディター/コンパイラーに表示されるはずです。

于 2012-12-14T04:26:19.047 に答える