Я в настоящее время играю вокруг с 2D графикой в андроиде и использовал простой SurfaceView для привлечения Drawables и Bitmaps на экран. Это работало хорошо, но в перемещении спрайта существует немного задержки, и я задаюсь вопросом выполнимость, чтобы сделать реальное время (но не ужасный быстрый) игра с этим.
Я знаю, что GLSurfaceView существует, какое использование OpenGL, но мне любопытно относительно степени, до которой это имеет значение. Плоскость SurfaceView аппаратно ускорена, или я должен использовать OpenGL? Какое различие в скорости я мог ожидать от переключения до OpenGL, и какого количества изменения кода требовалось бы для переключения (игровая логика - все в отдельном объекте, который обеспечивает заказанный массив drawables к SurfaceView)?
Насколько я могу судить, вы должны использовать openGL, чтобы получить ускорение HW. Но не принимайте это как должное и ждите других ответов ^^
Если это действительно так, то ускорение должно быть довольно значительным. Любое 2D приложение должно работать со скоростью не менее 20 кадров в секунду (обычно полигонов меньше, чем в 3D приложениях)
Это потребует значительного количества кода, но 1) в качестве первой попытки, вы можете попробовать с 1 квадратным VBO и менять матрицу каждый раз и 2) ваш рендеринг кажется уже достаточно инкапсулированным, так что это должно значительно упростить ситуацию.