为 Android 创建动态游戏引擎的自然方法
Natural approach to create a dynamic game engine for Android
我想为 Android 创建一个简单的游戏引擎。我是 OS 的新手,我想确保我没有走错方向。
我的要求很简单:
- 游戏引擎是一个运行游戏的应用程序,它作为一组媒体文件(图像、音频)+一个“描述”文件(例如xml 或 yaml 格式)描述和链接不同的“场景”。
- 一个“场景”只是一张背景图片+一段背景音乐+可以通过按钮触发的不同动作。
- 通常,单击一个按钮会将游戏移动到不同的“场景”。
我的第一个问题是:我应该用一个还是多个 Activity
对象来创建场景?那就是: 是不是最好有一个 activity ,点击按钮时内容会动态更新?或者每个场景有一个 activity。
请注意,困难在于游戏引擎必须动态生成活动。所以按钮列表不能硬编码在布局文件中,因为它们来自描述文件。我发现 this example 展示了如何动态创建布局。您会推荐使用相同的方法吗?
假设我对所有场景使用单个 activity,这意味着当我切换场景(通过单击按钮)时,我需要完全更新视图(背景和按钮)。为此,我是应该用 removeView()
一个一个地删除每个元素,还是用 setContentView()
创建一个新的空白布局,然后用新的背景和按钮填充它?
欢迎任何建议。
场景示例:
- 背景图片:卧室图片
- 背景音乐:bedroom_music.mp3
- 操作:
- 离开房间=>去客厅场景
- 通过window离开房间=>前往花园场景
- 拿起闹钟 => 将时钟添加到库存
活动通常用于不同的"views"。例如:
聊天应用程序将有一个大厅 activity,并在打开聊天屏幕时启动一个新的 activity。
按照上面的类比,我会说你应该只使用一个 activity 并在那个 activity 中加载正确的场景。可能有一个 activity 控制这些变化?或者 activity 在加载时显示布局。
话虽如此。我认为您必须设计可以转换为 buttons/walls/monsters 等的自定义对象。这将使 buttons/objects 的动态加载更容易。在 Android 中,您必须在布局 xml 文件中定义 buttons/visual 个对象。此文件将由 activity 加载。我不认为这些 xml 文件可以即时修改。
我想为 Android 创建一个简单的游戏引擎。我是 OS 的新手,我想确保我没有走错方向。
我的要求很简单:
- 游戏引擎是一个运行游戏的应用程序,它作为一组媒体文件(图像、音频)+一个“描述”文件(例如xml 或 yaml 格式)描述和链接不同的“场景”。
- 一个“场景”只是一张背景图片+一段背景音乐+可以通过按钮触发的不同动作。
- 通常,单击一个按钮会将游戏移动到不同的“场景”。
我的第一个问题是:我应该用一个还是多个 Activity
对象来创建场景?那就是: 是不是最好有一个 activity ,点击按钮时内容会动态更新?或者每个场景有一个 activity。
请注意,困难在于游戏引擎必须动态生成活动。所以按钮列表不能硬编码在布局文件中,因为它们来自描述文件。我发现 this example 展示了如何动态创建布局。您会推荐使用相同的方法吗?
假设我对所有场景使用单个 activity,这意味着当我切换场景(通过单击按钮)时,我需要完全更新视图(背景和按钮)。为此,我是应该用 removeView()
一个一个地删除每个元素,还是用 setContentView()
创建一个新的空白布局,然后用新的背景和按钮填充它?
欢迎任何建议。
场景示例:
- 背景图片:卧室图片
- 背景音乐:bedroom_music.mp3
- 操作:
- 离开房间=>去客厅场景
- 通过window离开房间=>前往花园场景
- 拿起闹钟 => 将时钟添加到库存
活动通常用于不同的"views"。例如: 聊天应用程序将有一个大厅 activity,并在打开聊天屏幕时启动一个新的 activity。
按照上面的类比,我会说你应该只使用一个 activity 并在那个 activity 中加载正确的场景。可能有一个 activity 控制这些变化?或者 activity 在加载时显示布局。
话虽如此。我认为您必须设计可以转换为 buttons/walls/monsters 等的自定义对象。这将使 buttons/objects 的动态加载更容易。在 Android 中,您必须在布局 xml 文件中定义 buttons/visual 个对象。此文件将由 activity 加载。我不认为这些 xml 文件可以即时修改。