2013-10-11 155 views
0

我一直在努力實現libgdx沒有一個新的Eclipse項目的一個核心項目,但我不斷收到:如何在沒有核心項目的情況下使用libgdx?

在類型AndroidApplication的方法初始化(ApplicationListener, 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(); 
    } 

} 
+2

你爲什麼要這樣做? –

+0

如果您在設置初始多項目結構時遇到問題,請使用設置gui。在我看來,沒有理由沒有核心項目。 – noone

回答

3

那是因爲您發送(GDX)AndroidApplication實例的INI代替(GDX)AndroidApplicationListener(這是一個擴展遊戲或實現ApplicationListener任何類)。

你得到的所有困惑,因爲你被點名了該類AndroidApplication ...

更改此:

initialize(new AndroidApplication(), cfg); 

這樣:

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

或者更好的是,改變了名稱類。 也不要忘了將gdx.jar複製到android項目庫文件夾。

+0

我怎麼會錯過...感謝您的幫助:) – Debels

+0

沒問題。我可能應該在答案中這樣說,最好是將核心,桌面和Android項目分開,因爲您可以在計算機上快速測試,而不是每次部署到設備或使用慢速仿真器。 – Lestat

+0

爲什麼我沒有一個核心項目的唯一原因是因爲我不能使用Android的方法,如藍牙,我看到了關於在覈心項目上製作一個接口,然後在android項目上實現它併發送它回到了核心項目。它只是奇怪的,但像你說我應該有一個核心項目,以防我想快速測試或支持更多的平臺,再次感謝:) – Debels

相關問題