gpt4 book ai didi

qt - 使用 QGraphicsScene 和 QGraphicsView 在 Qt 中开始基于 Tile 的游戏

转载 作者:行者123 更新时间:2023-12-04 05:55:57 27 4
gpt4 key购买 nike

我将开始在 Qt 中编写基于 2D tile 的游戏,并阅读有关用于显示和处理大量 2D 对象的 QGraphicsScene 和 QGraphicsView 类的信息。

我的问题是使用 QGraphicsScene 创建一个有很多图块的世界是否可行?我可以一次一块地添加整个世界,还是应该尝试实现一些东西来限制该区域?我读过 QGraphicsScene 可以处理“数千个项目”,但是 2D 瓷砖 map 可以很容易地变得非常非常大(200x200 瓷砖?不是很多,但这已经是 40,000 个对象,很多)。

map 也将是非常静态的,因此可以将其绘制为一个大像素图,但这确实会阻止您在 QGraphicsScene 中使用所有花哨的东西,例如处理独立项目上的鼠标点击等。最重要的是我我将绘制玩家、NPC 等等,它们不会与瓷砖网格对齐。是否有一些优化的东西来使用大量静态对象和一些动态对象?

使用 QGraphicsScene 和 QGraphicsView 甚至是一个好主意,还是我应该尝试在 Qt 中寻找替代方案,或者可能是一个不同的、更面向游戏的库?

提前致谢

最佳答案

您应该使用 QGraphicsView。

40,000 Chips int Qt 文档是您仔细检查的最佳示例。它处理大量元素的复杂性,以多种比例绘制它们等等。

玩这个例子,你会看到所有的筹码实际上组成了一张大照片,如果你缩小并且你可以在任何 View 中选择和拖放多个筹码,或者你可以放大到足以看到一些文字个人芯片。理解每个部分需要时间,但这是一个非常全面的例子。

chips.cpp源代码,它展示了如何通过使用“LevelOfDetail”或基于存储在样式选项中的转换的 lod 变量 switch 语句仍然可以快速运行。

Qt 图形 View 已经过优化,可以完成您在问题中谈到的很多事情,但是需要一段时间才能理解如何处理它。

如果您仍然对要使用的 map 大小有疑问,我会将图块布局存储在硬盘驱动器上,并在需要时加载所需的图块布局,然后将不需要的图块布局从场景中移除必要的。

关于qt - 使用 QGraphicsScene 和 QGraphicsView 在 Qt 中开始基于 Tile 的游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9119933/

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