如何在没有核心项目的情况下使用libgdx?

时间:2013-10-11 01:06:03

标签: android libgdx

我一直在尝试在新的eclipse项目中实现没有核心项目的libgdx,但我一直在努力:

  

方法初始化(ApplicationListener,   AndroidApplication类型中的AndroidApplicationConfiguration不是   适用于参数(AndroidApplication,   AndroidApplicationConfiguration)

我现在使用的代码非常简单:

package com.debels.androidapplication;

import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;

import android.os.Bundle;

public class MainActivity extends AndroidApplication{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
        cfg.useGL20 = false;

        initialize(new AndroidApplication(), cfg);
    }
}

package com.debels.androidapplication;

import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.FPSLogger;
import com.badlogic.gdx.graphics.OrthographicCamera;
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.badlogic.gdx.graphics.g2d.TextureRegion;
import com.debels.androidapplication.screens.MainMenuScreen;

public class AndroidApplication extends Game{
    private OrthographicCamera camera;
    private SpriteBatch batch;
    private Texture texture;
    private Sprite sprite;
    private FPSLogger fps;
    @Override
    public void create(){
        float w = Gdx.graphics.getWidth();
        float h = Gdx.graphics.getHeight();

        camera = new OrthographicCamera(1, h/w);
        batch = new SpriteBatch();

        //texture = new Texture(Gdx.files.internal("data/libgdx.png"));
        //texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);

        //TextureRegion region = new TextureRegion(texture, 0, 0, 512, 275);

        /*sprite = new Sprite(region);
        sprite.setSize(0.9f, 0.9f * sprite.getHeight() / sprite.getWidth());
        sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
        sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);*/
        setScreen(new MainMenuScreen(this));
        fps = new FPSLogger();

    }

    @Override
    public void dispose() {
        super.dispose();
    }

    @Override
    public void render() {
        super.render();
        /*fps.log();
        Gdx.gl.glClearColor(1, 1, 1, 1);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

        batch.setProjectionMatrix(camera.combined);
        batch.begin();
        sprite.draw(batch);
        batch.end();*/
    }

    @Override
    public void resize(int width, int height) {
        super.resize(width, height);
    }

    @Override
    public void pause() {
        super.pause();
    }

    @Override
    public void resume() {
        super.resume();
    }

}

1 个答案:

答案 0 :(得分:3)

这是因为您正在向ini发送(gdx)AndroidApplication实例而不是(gdx)AndroidApplicationListener(这是扩展Game或实现ApplicationListener的任何类)。

因为您将该类命名为AndroidApplication而感到困惑......

改变这个:

initialize(new AndroidApplication(), cfg);

到此:

initialize(new com.debels.androidapplication.AndroidApplication(), cfg);

或者更好的是,更改该类的名称。 另外不要忘记将gdx.jar复制到android项目libs文件夹。