0

我正在将 C# 与 MonoGame 一起使用,我想知道为收藏纸牌游戏加载超过一百万张卡片图像的有效方法是什么。在未来的更新中会不断添加更多卡片,等等。我确信有一些天才的方法可以解决这个问题,既优雅又高效。我希望对其他人如何解决这个问题有所了解。

这些卡片都将位于用户下载的客户端应用程序上。服务器将确保玩家没有作弊。我试图弄清楚在客户端管理大量关于卡片加载和卸载的卡片图像的有效方法。

我了解卡片应仅在必要时加载和显示。然而,在游戏中的某些地方,用户可以查看他们的整个收藏。我正在考虑使用滚动条或类似的东西。他们可以根据卡片的某些属性过滤卡片。在这种情况下,我将如何实时管理卡片的加载/卸载以使其无缝和高效。

4

3 回答 3

2

您不会一次加载所有图像。无论这是否是在线游戏,一次加载所有这些都将是非常低效的。解决此问题的一种方法是将它们全部放入某种数据库中,并且仅在需要时才加载所需的牌,例如在发新手时等。如果您担心查询速度会减慢游戏速度,请查看有关如何正确最快查询的详细文章/竞赛,以及这些提示。

至于您的编辑:

您仍然可以在服务器上使用 SQL 数据库并运行查询以确保它们没有作弊。您无需查看他们所有的牌,只需查看他们当前拥有或正在处理的牌即可。

希望这对你有帮助!

于 2013-01-23T02:51:28.047 回答
1

假设这是一个在线游戏。我想你会想要使用数据库(MySQL 等)来存储卡信息。卡片图像将存储在 FTP 上以便快速访问,它们的路径将存储在数据库中。然后使用查询来访问当前屏幕所需的必要卡片。

于 2013-01-23T02:46:29.343 回答
0

您不应该一次加载一百万张图像。仅按需加载...例如,当发牌时,加载图像。

我相信您可以将图像保存在数据库中。这是最有效的存储和检索机制。或者您可以存储为二进制数据。如果不将图像数据保存在 RAM 或 SSHD 中,您将不会变得更快。

如果您关心的是性能,我认为您的优先级错误。;)

于 2013-01-23T02:51:40.123 回答