为Android创建动态游戏引擎的自然方法

时间:2015-06-16 13:43:12

标签: java android android-activity game-engine

我想为Android创建一个简单的游戏引擎。我是操作系统的新手,我想确保我不会从错误的方向开始。

我的要求很简单:

  • 游戏引擎是一个运行游戏的应用程序,该游戏作为一组媒体文件(图像,音频)+一个" 描述"文件(例如xml或yaml格式),用于描述和链接不同的" 场景"。
  • A" 场景"只是一个背景图片+一个背景音乐+可以用按钮触发的不同动作。
  • 通常,点击按钮会将游戏移动到另一个" 场景"。

我的第一个问题是:我应该有一个或多个Activity个对象来创建场景吗?那就是:单击一个活动,单击按钮时动态更新内容是否更好;或每个场景有一个活动。

请注意,难点在于游戏引擎必须动态生成活动。因此,按钮列表不能在布局文件中进行硬编码,因为它们来自描述文件。我发现this example显示了如何动态创建布局。你会建议使用相同的方法吗?

假设我对所有场景使用单个活动,这意味着当我切换场景(通过单击按钮)时,我需要完全更新视图(背景和按钮)。为此,我应该使用removeView()逐个删除每个元素,还是使用setContentView()创建一个新的空白布局,然后使用新的背景和按钮填充它?

欢迎任何建议。

场景示例:

  • 背景图片:卧室图片
  • 背景音乐:bedroom_music.mp3
  • 操作:
    • 离开房间=>去客厅现场
    • 通过窗口离开房间=>去花园场景
    • 拿起闹钟=>将时钟添加到库存

1 个答案:

答案 0 :(得分:1)

活动通常用于不同的“观点”。例如: 聊天应用程序将具有大厅活动,并在打开聊天屏幕时启动新活动。

按照上面的类比,我会说你应该只使用一个活动并在该活动中加载正确的场景。可能有一项控制这些变化的活动?或者是在加载时显示布局的活动。

说完了。我认为你必须设计可以转换为按钮/墙/怪物等的自定义对象。这将使按钮/对象的动态加载更容易。在Android中,您必须在布局xml文件中定义按钮/可视对象。该文件将由活动加载。我不认为这些xml文件可以动态修改。