gpt4 book ai didi

java - Android游戏开发几个场景

转载 作者:行者123 更新时间:2023-11-30 11:10:38 25 4
gpt4 key购买 nike

我正在为 Android 使用 Canvas for 2D Graphics 构建游戏。到目前为止,我的做法是我有一个 GameView (SurfaceView),它有一个调用其 onDraw()< 的 GameLoop/ 方法。

现在,我为每个场景扩展了 GameView,并为 MainMenu 绘制了所有按钮和背景。当我单击一个按钮时,我将确定在 MainScene(扩展 GameView)onTouchEvent 中下一步要做什么。假设我单击“设置”按钮,然后我将启动一个仅包含一个新场景(另一个扩展 GameView 的场景)的新 Activity 。

因此,对于每个场景,我都有一个新的 Activity,它只包含 GameView 的扩展,其中包括每秒绘制 20/30 次的 GameLoop。在 onTouchEvents 中,我将开始一项新 Activity/完成一项 Activity 或做其他事情。

MainActivity (MainScene) -> SettingsActivity(SettingsScene) 或 StoreActivity(StoreScene) 等。这是正确的方法吗?还是效率低下?

我找不到有关使用 Canvas 的多场景游戏应用程序的教程或大量阅读资料。

最佳答案

在开发标准 Android 应用程序时,实际上可以为每个场景启动新的 Activity。对于简单的游戏或者当你不想手动管理资源时就可以了(当系统需要资源时 Activity 将被销毁,并在需要时重新创建)。在这种方法中,您无法完全控制场景转换,您需要为每个 Activity 重新初始化一些可能在整个游戏中初始化一次的内容。

如果你想让场景转换更快更高效,你至少还有 3 个变体。

  1. fragment 。您可以替换包含场景 View 的 fragment ,而不是为每个场景启动 Activity 。在这种方法中,您可以更好地控制转换和 fragment 状态。

  2. 观看次数。您可以用相同的方式替换 View ,而不是替换 fragment ,例如使用框架布局作为容器。

  3. 场景抽屉。您可以只替换 View 中的 Drawer 类,而不是替换 View 。例如,您可以创建一个包含方法 draw(Canvas, args...) 的界面场景,并让您的所有场景都实现它。之后,您可以在 View 中替换要绘制的场景。

任何我喜欢使用的方式http://libgdx.badlogicgames.com/对于简单的安卓游戏。主要好处是您可以在桌面上运行游戏进行测试,而不是等待在设备上部署。

关于java - Android游戏开发几个场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27652085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com