Android-игра не отображает сцену scene2d на телефоне

Я практикую создание игры для Android, используя libgdx в Eclipse. На моем первом экране я добавляю TextButton и Label на свою сцену. Когда я запускаю настольное приложение, сцена отображается с меткой и кнопкой. Однако, когда я запускаю приложение Android на своем телефоне (Android 2.2) или эмуляторе (Andorid 2.2 и 4.03), ничего не отображается, только пустой экран. Нет никаких ошибок, которые я вижу в логарифме или консоли.

Logcat отображает бит копирования «Ошибка открытия буфера кадра errno = 13 (отказано в доступе)», однако я не думаю, что это является причиной.

Я проверил свой путь сборки Java, и все выглядит нормально. После того, как я погуглил везде, это единственный похожий пост, который я нашел: телефоны Android. На ответ, получивший наибольшее количество голосов, пользователь nEx.Software комментирует: «Под неработающим вы имеете в виду просто отображение пустого экрана? Это потому, что стартер Desktop создает новый экземпляр ScreenTest (), а стартер Android создает новый экземпляр ScreenGame ( )". Я думаю, что это может решить мою проблему, однако я не совсем понимаю его/ее комментарий.

Ниже приведен код для моего стартового класса Android:

public class MainActivity extends AndroidApplication {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
        cfg.useGL20 = true;
        cfg.useAccelerometer = false;
        cfg.useCompass = false;

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

Изменить

Ниже приведен код моего класса игр Main.java:

public class FirstGame extends Game {

    @Override
    public void create() {  
        this.setScreen(new MainMenu(this));
    }
        @Override
    public void dispose() {
    }

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

    @Override
    public void pause() {
    }

    @Override
    public void resume() {
    }
}

Любая помощь будет принята с благодарностью.

ОБНОВЛЕНИЕ

Я понял, что это отображается на моем телефоне, однако сцена была за кадром, все равно спасибо


person SEMJ    schedule 11.11.2012    source источник
comment
Как вы загружаете свои активы? Совместимы ли они с экраном, на котором вы показываете? Кроме того, попробуйте настроить отладку в scene2d (см. code.google.com/p/libgdx/wiki /scene2dui). У вас есть рамки вокруг того места, где должны быть ваши элементы?   -  person Rod Hyde    schedule 13.11.2012
comment
Да, спасибо :), понял, что моя сцена загружается за кадром. Ура, хотя дружище.   -  person SEMJ    schedule 13.11.2012


Ответы (1)


Можете ли вы опубликовать копию своего Android-стартера? Также недавняя проблема с Eclipse ADT означает, что иногда проекты не синхронизируются. Попробуйте очистить все проекты.

Проекты -> очистить -> Выбрать все проекты, связанные с игрой -> ОК

Также я предполагал использование Eclipse, так ли это?

person LiamJPeters    schedule 11.11.2012
comment
Извините, что не указал, да, я использую Eclipse и пробовал очистку проекта, обычно перед запуском на телефоне, под Android starter вы имеете в виду Main.java моего проекта Android игр? Спасибо - person SEMJ; 12.11.2012
comment
Да. Файл, который вы запускаете для запуска приложения на вашем телефоне (который, как я вижу, теперь включен в ваш OP, спасибо), и, возможно, даже копия класса FirstGame() была бы полезна. - person LiamJPeters; 12.11.2012
comment
Я отредактировал класс Main.java FirstGame, это просто устанавливает экран в класс MainMenu, который расширяет класс AbstractScreen, который я сделал (который реализует экран), этот класс MainMenu использует этап scene2d для addActors, они отлично отображаются на рабочем столе, однако они не видны на моем мобильном телефоне или эмуляторе :( - person SEMJ; 13.11.2012
comment
В игре есть метод рендеринга, который должен вызывать что-то вроде this.getScreen().render(); Я не понимаю, как что-то можно отрисовать на экране, или я упускаю что-то очень очевидное? Кроме того, почему вы абстрагируете экран, а не просто используете встроенный класс экрана? - person LiamJPeters; 13.11.2012
comment
Я переопределил метод рендеринга в моем классе AbstractScreen, я сделал этот абстрактный класс, чтобы все мои экраны могли его расширять. В методе рендеринга AbstractScreen сцена рисуется, сцена также объявляется и инициализируется в этом классе, поэтому мне не нужно повторно объявлять сцену в каждом классе экрана. Я же говорю, на десктопе все успешно рисуется. Текстуры libgdx также успешно отображаются на моем телефоне таким образом, однако, когда я использую сцену, она не будет отображаться на моем телефоне, а только в настольном приложении. - person SEMJ; 13.11.2012
comment
Наконец-то я понял это, это была загрузка текстур за пределами экрана, по какой-то причине моя сцена не настроена должным образом, спасибо за помощь, могу ли я как-то отблагодарить вас за ваши усилия? Спасибо - person SEMJ; 13.11.2012
comment
Я бы сказал, поставьте галочку, чтобы пометить вопрос как отвеченный, но технически я не ответил на ваш вопрос. Рад, что вы разобрались! - person LiamJPeters; 13.11.2012
comment
Я поставлю галочку, а затем обновлю свой первоначальный пост :) но, видимо, я не могу поставить галочку, пока у меня не будет 15 повторений: / - person SEMJ; 13.11.2012