仅限QML的冒险游戏?

时间:2014-06-09 15:16:49

标签: 2d qml game-engine adventure

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

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

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

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

我一直在寻找一种恰当的方法来在QML中做到这一点,但似乎没有。

有没有人有个好主意,怎么做?到目前为止谷歌还没有帮助过我。

2 个答案:

答案 0 :(得分:1)

第一个出现在我脑海中的是:

  • 根QML有许多代表区域(厨房,起居室等)的QML项目
  • 每个时刻只能看到一个区域。
  • 每个区域都有一些玩家可以离开的区域。
  • 有一个描述世界的全球状态。所有区域都有该州。
  • 当玩家做某些动作时,区域会影响玩家。它可以做到这一点,因为玩家对象可以在区域内访问。
  • 当玩家离开区域时,它会执行一些切换区域的Root项代码。 Root知道所有区域,因此它可以通过其id或其他唯一描述获得一个区域。

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

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

答案 1 :(得分:1)

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

所以,肯定有办法做到这一点,我建议您使用Flickable来表示您的级别。