Я пытаюсь научиться использовать движок libgdx. Как и в учебнике ( https://code.google.com/p/libgdx/wiki/ExtendedSimpleApp ) на сайте libgdx, я попытался настроить небольшое главное меню. Я импортировал все классы, которые необходимы, но в строке 29 всегда есть ошибка: «MainMenuScreen не может быть разрешен для типа». Вот исходный код:
package com.me.mygdxgame; import java.awt.SplashScreen; import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; public class MyGdxGame implements ApplicationListener { private OrthographicCamera camera; private SpriteBatch batch; private Texture texture; private Sprite sprite; private BitmapFont font; @Override public void create() { batch = new SpriteBatch(); //Use LibGDX's default Arial font. font = new BitmapFont(); this.setScreen(new MainMenuScreen(this)); } @Override public void dispose() { batch.dispose(); texture.dispose(); } @Override public void render() { 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) { } @Override public void pause() { } @Override public void resume() { }
}
MainMenuScreen не является стандартным классом, если вы читаете далее в учебном пособии, которое вы связали, вы видите, что создали дополнительный класс «MainMenuScreen», просто создайте еще один класс с именем «MainMenuScreen» и добавьте код из учебника.
Если это ваш первый раз с java, вы можете захотеть google некоторые java-учебники для изучения фондов java и oop сначала, прежде чем использовать некоторые внешние библиотеки;)
Вам нужно создать класс, который расширяет класс игры libgdx.
public class MainClass extends Game
То в вашем методе создания основного класса вы должны установить экран.
setScreen(new MainMenuScreen(this));
И в вашем mainmenuclass вам нужно реализовать экранный класс libgdx.
public class MainMenuScreen implements Screen
И вы должны сделать такой конструктор
public MainMenuScreen(Game game) { // TODO Auto-generated constructor stub this.game = game; camera = new OrthographicCamera(); camera.setToOrtho(false, scrw, scrh);//scrw is your screen width,scrh is screen height camera.update(); batch = new SpriteBatch(); Gdx.input.setInputProcessor(MainMenuScreen.this);}
Я думаю, что это сработает …
Чтобы начать изучение libGDX, ознакомьтесь с этим проектом: https://github.com/edesdan/libgdx-playground . Может быть, это поможет вам сделать первые шаги в этом мире.
Ваша основная концепция не ясна. Чтобы использовать разные экраны в одном приложении, вам необходимо расширить класс Game
.
public class MyGdxGame extends Game implements ApplicationListener{}
Чтобы выбрать другой экран, вызовите:
setScreen(new XYZScreen(this));
this
относится к объекту MyGdxGame
.
Теперь вам нужно создать новый класс имени XYZ. Затем сделайте все, что захотите, на новом экране.