Я создаю игру для Android с помощью Canvas для 2D-графики. Как я это делал до сих пор, у меня есть GameView
(SurfaceView
), который имеет GameLoop
, который вызывает его метод onDraw()
.Разработка игр для Android Несколько сцен
Теперь для каждой сцены я выдвинул GameView
и для MainMenu
, например, я рисую все кнопки & Фоны. Когда я нажимаю кнопку, я буду определять, что делать дальше в MainScene (расширение GameView) onTouchEvent. Предположим, я нажму кнопку «Настройки», а затем запустил новую активность, которая содержит только новую сцену (другая сцена, расширяющая GameView).
Для каждой сцены у меня есть новый Activity
, содержащий расширение GameView, которое включает GameLoop
, чтобы нарисовать 20/30 раз в секунду. И в onTouchEvents
я либо начну новую деятельность/закончу действие, либо сделаю что-то еще.
MainActivity (MainScene) -> SettingsActivity (SettingsScene) или StoreActivity (StoreScene) и т. Д. Правильно ли это сделать? Или это неэффективно?
Я не мог найти учебники или много, чтобы читать о многопользовательских играх с использованием холста.
Правильный ответ часто: «используйте 2D-движок с открытым исходным кодом». Я хотел бы отметить, что если вы передаете Canvas, который вы получаете из 'onDraw()', вы, вероятно, используете View, а не Surface, и нет смысла использовать SurfaceView. Просто используйте пользовательский вид - http://developer.android.com/training/custom-views/index.html. Или просто используйте GLES; простой пример GLSurfaceView: https://code.google.com/p/android-breakout/. – fadden