2013-10-11 5 views
0

J'ai essayé de mettre en œuvre libgdx sans un projet de base dans un nouveau projet d'éclipse, mais je continue à obtenir:Comment utiliser libgdx sans avoir un projet de base?

initialize méthode (ApplicationListener, AndroidApplicationConfiguration) dans le AndroidApplication type n'est pas applicable pour les arguments (AndroidApplication, AndroidApplicationConfiguration)

le code que j'utilise est assez simple au moment:

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); 
    } 
} 

et

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

Pourquoi voulez-vous faire cela? –

+0

Si vous avez des problèmes avec la configuration initiale de la structure multi-projet, utilisez le guide d'installation pour cela. À mon avis, il n'y a aucune raison de ne pas avoir un projet de base. – noone

Répondre

3

C'est parce que vous envoyez un (GDX) AndroidApplication exemple aux ini au lieu d'un (GDX) AndroidApplicationListener (qui est une classe qui étend jeu ou met en œuvre ApplicationListener).

Vous obtenez tout confus parce que vous avez nommé que AndroidApplication classe ...

Modifier ceci:

initialize(new AndroidApplication(), cfg); 

à ceci:

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

Ou mieux encore, changer le nom de cette classe. N'oubliez pas non plus de copier le fichier gdx.jar dans le dossier libs du projet android.

+0

Comment pourrais-je manquer ça ... Merci pour l'aide :) – Debels

+0

Pas de problème. Et j'aurais probablement dû le dire dans la réponse, il vaut mieux séparer les projets core, desktop et android car vous pouvez tester rapidement sur votre ordinateur au lieu de le déployer sur un périphérique à chaque fois ou en utilisant l'émulateur lent. – Lestat

+0

La seule raison pour laquelle je n'ai pas de projet de base est parce que je ne peux pas utiliser les méthodes android comme Bluetooth, j'ai vu un chemin sur stackoverflow pour faire une interface sur le projet principal, puis l'implémenter sur le projet android retour au projet de base. C'est juste étrange, mais comme vous dites que je devrais avoir un projet de base au cas où je veux tester rapidement ou soutenir plus de plates-formes, Merci encore :) – Debels

Questions connexes