Где разместить основной игровой цикл в игре для Android - PullRequest
7 голосов
/ 22 октября 2010

Я пытаюсь написать какой-нибудь скелет для игры на андроиде, используя OpenGL.Я хотел бы знать, где я должен разместить свой основной код игрового цикла?

До сих пор мой лучший кандидат - метод Renderer.onDrawFrame (...), который, кажется, называется покадровым, поэтомукод выглядит так:

void onDrawFrame(GL10 gl) 
{
     preLoopActions();

     m_gameScene->onUpdate();
     m_gameScene->onRender(gl);

     postLoopActions();
}

Есть ли лучший подход?Мне это не нравится, потому что 1) я должен смешивать обновление и рендеринг в месте, где android ожидает от меня только рендеринга, и 2) этот метод вызывается из отдельного «потока рендеринга», что увеличивает сложность игры.*

Ответы [ 2 ]

2 голосов
/ 03 ноября 2010

Разделите математику и логику рисования.Вам нужно создать поток с циклом выполнения в этом цикле, запустить часть math () и затем вызвать часть render (), когда у вас это работает, есть некоторые методы для контроля времени цикла.

1 голос
/ 22 октября 2010

Рассматривали ли вы работу с такими фреймворками, как AndEngine .У этого есть кое-что, названное GameActivity, которое делает жизнь довольно легкой.Примеры довольно легко подобрать.

...