【发布时间】:2014-12-26 01:39:42
【问题描述】:
我正在使用 Canvas for 2D Graphics 为 android 构建游戏。到目前为止我这样做的方式是我有一个GameView (SurfaceView),它有一个GameLoop,它调用它的onDraw() 方法。
现在,对于每个场景,我扩展了 GameView 和 MainMenu,例如,我绘制了所有按钮和背景。当我单击一个按钮时,我将在 MainScene(扩展 GameView)onTouchEvent 中确定下一步该做什么。假设我点击了设置按钮,然后我将启动一个新的 Activity,它只包含一个新场景(另一个场景扩展了 GameView)。
所以对于每个场景,我都有一个新的 Activity,它只包含一个 GameView 的扩展,其中包括一个 GameLoop,每秒可以绘制 20/30 次。在onTouchEvents 中,我要么开始一项新活动/完成一项活动,要么做其他事情。
MainActivity (MainScene) -> SettingsActivity(SettingsScene) 或 StoreActivity(StoreScene) 等。 这是正确的方法吗?还是效率低?
我找不到有关使用画布的多场景游戏应用程序的教程或大量可阅读的内容。
【问题讨论】:
-
正确的答案通常是“使用开源 2D 游戏引擎”。我想指出的是,如果您要渲染到从
onDraw()获得的 Canvas,那么您可能是在 View 而不是 Surface 上绘图,使用 SurfaceView 毫无意义。只需使用自定义视图——developer.android.com/training/custom-views/index.html。或者只使用 GLES;此处基于 GLSurfaceView 的简单示例:code.google.com/p/android-breakout.
标签: java android canvas surfaceview