0

我想使用 QML(Qt 建模语言)为桌面和安卓实现一个简单的 2D 冒险游戏。

游戏将有不同的地方,例如厨房和地窖。一个地方通常有一个背景图像,然后是那个地方的一些对象。这些可能是您需要查找和收集的一些东西,或者也可以是简单的精灵,例如飞过房间的鸟。

我写了一个只有一个地方的小型第一个版本,效果很好。现在我想扩展游戏。

我想实现隔离和分开的地方,所以我可以很容易地在这些地方之间切换,例如你从厨房到地窖,并且可以很容易地添加这些地方。

我一直在寻找一种仅在 QML 中执行此操作的适当方法,但似乎没有。

有没有人有一个好主意,如何做到这一点?到目前为止,谷歌还没有帮助我。

4

2 回答 2

1

我首先想到的是:

  • 根 QML 具有代表区域(厨房、客厅等)的 QML 项目的数量
  • 每时每刻只能看到一个区域。
  • 每个区域都有一些玩家可以离开的区域。
  • 有一个描述世界的全局状态。该状态在所有区域都可用。
  • 当玩家执行某些操作时,区域会影响玩家。它可以做到这一点,因为玩家对象可以在区域内访问。
  • 当玩家离开区域时,它会执行一些根项目代码来切换区域。Root 知道所有区域,因此它可以通过它的 id 或其他一些独特的描述来获取一个。

无论如何,我认为这个问题可以有很多答案。它们将取决于复杂的玩家对象与区域外部世界的通信方式。我认为展示一些你的代码是个好主意,也许你已经有了一些绝妙的想法。

我不能说这个问题的答案总是基于意见的,这很糟糕,但这个问题对于 SO 来说似乎不是很具体,恕我直言。

于 2014-06-09T16:10:56.447 回答
1

我有点同意卡卡杜的观点,这并不是一个具体的问题。不过我想回复一下,因为你的问题听起来与我正在做的一个小型项目非常相似,我使用 Flickable 作为关卡的视图,每个关卡都可以是项目、图像等。玩家到达关卡的任一边缘,当前关卡将其不透明度设置为 0,并将其父属性设置为 null。然后,新级别将其父级设置为 Flickable(视图)。

所以,肯定有办法做到这一点,我建议使用 Flickable 和你想用来表示你的关卡的任何类型。

于 2014-06-09T16:21:09.870 回答