Я делаю специфичную для Android игру и хотел бы использовать API Android. Но мне интересно, возможно ли иметь как меню Android, а оттуда вызывать libGdx? Я пробовал адаптировать манифест в части Android, поэтому андроидная активность (меню) является активностью LAUNCHER и сначала вызывается. Затем я подумал, что могу запустить ApplicationListener с намерением, но это не сработает. Что я делаю не так? Возможно ли это?Запуск libGdx с кодом android
ответ
Это довольно просто:
// my call of the loading screen from inside a fragment
Intent intent = new Intent(getActivity(), LoadingScreenActivity.class);
startActivity(intent);
и LoadingScreenActivity есть, думаю, что, деятельность.
// the onCreate method
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = true;
cfg.useAccelerometer = false;
cfg.useCompass = false;
initialize(new LoadingScreen(), cfg);
}
и LoadingScreen является ApplicationListener вы уже упоминали
public class LoadingScreen implements ApplicationListener {
// create(), resize() and more
}
Поэтому в основном вам нужно вставлять libgdx внутри деятельности ...
Edit:
Вот мой полная загрузка экрана активности, которая использует libgdx. Он должен работать (просто удалите материал CustomApplication, которого у вас нет).
public class LoadingScreenActivity extends AndroidApplication {
private final static String LOG_TAG = LoadingScreenActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = true;
cfg.useAccelerometer = false;
cfg.useCompass = false;
initialize(new LoadingScreen(), cfg);
}
private class LoadingScreen implements ApplicationListener {
private OrthographicCamera mCamera = new OrthographicCamera();
private SpriteBatch mBatch;
private Stage mStage;
private ShapeRenderer mProgressLine;
@Override
public void create() {
AssetManager manager = CustomApplication.getAssetManager();
manager.load("ic_launcher.png", Texture.class);
mStage = new Stage();
mProgressLine = new ShapeRenderer();
mBatch = new SpriteBatch();
mCamera.setToOrtho(false, DesignUtil.getScreenWidth(), DesignUtil.getScreenHeight());
mStage.setCamera(mCamera);
}
@Override
public void resize(int width, int height) {
mStage.setViewport(width, height, true);
}
@Override
public void render() {
if (CustomApplication.getAssetManager().update()) {
IntentUtil.startActivity(LoadingScreenActivity.this, GameActivity.class);
finish();
return;
}
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
// tell the camera to update its matrices.
mCamera.update();
// tell the SpriteBatch to render in the
// coordinate system specified by the camera.
mBatch.setProjectionMatrix(mCamera.combined);
mBatch.begin();
mProgressLine.begin(ShapeRenderer.ShapeType.Rectangle);
mProgressLine.rect(0 + mStage.getWidth()/5, mStage.getHeight()/2, mStage.getWidth() - mStage.getWidth()/2.5f, DesignUtil.percentToPixel(5, mStage.getHeight()));
mProgressLine.setColor(0, 1, 0, 1);
mProgressLine.end();
mProgressLine.begin(ShapeRenderer.ShapeType.FilledRectangle);
mProgressLine.filledRect(0 + mStage.getWidth()/5, mStage.getHeight()/2, (mStage.getWidth() - mStage.getWidth()/2.5f) * CustomApplication.getAssetManager().getProgress(), DesignUtil.percentToPixel(5, mStage.getHeight()));
mProgressLine.setColor(0, 1, 0, 1);
mProgressLine.end();
mBatch.end();
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
mBatch.dispose();
mStage.dispose();
mProgressLine.dispose();
}
}
}
Если это помогает, вы можете использовать элементы интерфейса Android от Libgdx. Таким образом, вы можете получить нужное поведение, но не тот метод, который вы хотите.
http://code.google.com/p/libgdx-users/wiki/IntegratingAndroidNativeUiElements
http://code.google.com/p/libgdx-users/wiki/IntegratingAndroidNativeUiElements3TierProjectSetup
Да, я знал об этом, но все равно большое спасибо, это может помочь кому-то еще! – user2685747
- 1. Запуск проекта LibGDX с Android Studio
- 2. Запуск Android Intent от метода визуализации Libgdx
- 3. Запуск проекта libgdx на рабочем столе с Android-студией
- 4. Libgdx с android xml?
- 5. Запуск приложения RoboVM/libgdx iOS
- 6. Запуск проекта Libgdx для IPhonesimulator
- 7. Проблемы с ОС Android LibGDX
- 8. Проблемы с эмулятором Android LibGDX
- 9. Android-приложение с компонентом libgdx
- 10. Запуск программы с кодом ошибки 1
- 11. Запуск сценария powershell с кодом C#
- 12. QT Creator: Запуск слота с кодом?
- 13. Docker завершается с кодом выхода на запуск
- 14. Запуск в браузере с кодом VS
- 15. Предотвратить запуск скрипта PHP с открытым кодом
- 16. libgdx sendHttpRequest от android activity
- 17. Проект Android: экспортный запуск Запуск отменен! Proguard вернулся с кодом ошибки 1. См консоли
- 18. Запуск libGDX по какой-то причине задерживается
- 19. Libgdx Android делящий экран
- 20. Transparency Libgdx Android
- 21. libgdx android style swipe
- 22. LibGDX ClassNotFound на Android
- 23. Libgdx и Android NFC
- 24. libgdx android Локальный файл
- 25. LibGDX внутри Android Activity
- 26. Libgdx - Gradle Android debuggable
- 27. Ошибка Android gradle (libGDX)
- 28. LibGdx - Instalation Android project
- 29. Android Libgdx TileAtlas
- 30. Memory Leak LibGDX ANdroid
@ user2685747 Я добавил свой полный класс Activity, который простирается от AndroidApplication. Если у вас все еще есть ошибки, скажите мне, какой из них я могу вам помочь. – WarrenFaith