2012-12-14 179 views
1

我不斷收到此錯誤:必須實現繼承的方法ApplicationListener.render()

「之類的MainMenu必須實現繼承的抽象方法ApplicationListener.render()」

我的代碼: 包融爲一體。 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(); 
} 

我仍然可以運行我的代碼,但是當我嘗試,然後按回車它終止,我得到的錯誤:

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 

什麼想法?

回答

1

這不是ApplicationListener定義的render方法:

@Override 
public void render(float delta) 

real render method沒有參數。

在您的編輯器/編譯器中應該有一個警告,觸發@Override註釋。

+0

他沒有得到任何警告,因爲他也實現了屏幕:其中render方法確實有一個float作爲參數。 – Lestat

相關問題