Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对于一款可收藏的纸牌游戏,加载超过一百万张图片的有效方法是什么?_C#_Algorithm_Architecture_Monogame - Fatal编程技术网

C# 对于一款可收藏的纸牌游戏,加载超过一百万张图片的有效方法是什么?

C# 对于一款可收藏的纸牌游戏,加载超过一百万张图片的有效方法是什么?,c#,algorithm,architecture,monogame,C#,Algorithm,Architecture,Monogame,我正在将C#与MonoGame结合使用,我想知道在一款可收藏的纸牌游戏中加载超过一百万张纸牌图像的有效方法是什么。更多的卡片将在未来的更新中不断添加。我相信有一些天才的方法可以做到这一点,既优雅又高效。我希望获得一些关于其他人如何解决这个问题的见解 这些卡都将位于用户下载的客户端应用程序上。服务器将确保玩家没有作弊。我正在尝试找出什么是有效的方法来管理客户端上大量的卡映像,包括卡的加载和卸载 我知道只有在必要时才应该加载和显示卡。然而,在游戏中,用户可以查看他们的整个收藏。我在用滚动条或类似的东

我正在将C#与MonoGame结合使用,我想知道在一款可收藏的纸牌游戏中加载超过一百万张纸牌图像的有效方法是什么。更多的卡片将在未来的更新中不断添加。我相信有一些天才的方法可以做到这一点,既优雅又高效。我希望获得一些关于其他人如何解决这个问题的见解

这些卡都将位于用户下载的客户端应用程序上。服务器将确保玩家没有作弊。我正在尝试找出什么是有效的方法来管理客户端上大量的卡映像,包括卡的加载和卸载


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

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

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

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

至于您的编辑:

您仍然可以在服务器上使用SQL数据库并运行查询以确保它们没有作弊。你不需要检查他们所有的卡,只需要检查他们目前拥有或正在交易的卡


希望这对你有帮助

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

至于您的编辑:

您仍然可以在服务器上使用SQL数据库并运行查询以确保它们没有作弊。你不需要检查他们所有的卡,只需要检查他们目前拥有或正在交易的卡


希望这对你有帮助

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

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


如果你关心的是绩效,我认为你的优先顺序错了

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

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



如果你关心的是绩效,我认为你的优先顺序错了

不是一次全部-这是唯一的方法。你当然不能一次查看一百万(或更多)图像,那么你为什么要一次加载它们?是真的有一百万张图像,还是你只是为了效果而这么说?我肯定我不会一次显示一百万张图像,但在引擎盖下面,管理它们的好方法是什么?从硬盘加载图像不会是最快的,但我可以做些什么改进以使其尽可能高效?不够详细-投票关闭不是一次全部-这是唯一的方法。你当然不能一次查看一百万(或更多)图像,那你为什么要一次加载它们呢?它实际上是一百万张图片,还是你只是为了效果而这么说?我肯定我不会一次显示一百万张图片,但在引擎盖下面,管理它们的好方法是什么?从硬盘加载图像不会是最快的,但我可以做些什么改进以使其尽可能高效?不够详细-投票关闭FTP与“快速访问”没有同义词。@rotaercz“图像文件”?图像文件是游戏中所有单独的纸牌艺术。FTP与“快速访问”没有任何同义词。@rotaercz“图像文件”?图像文件是游戏中所有单独的纸牌艺术。@KirkWoll捕捉得好。错别字:好,谢谢!谢谢你的意见@柯克沃尔:接得好。错别字:好,谢谢!谢谢你的意见!用户将在其计算机上拥有所有卡片图像文件。他们将下载一个客户端来玩游戏,并连接到服务器与其他人一起玩。我不会直接从数据库/服务器传递卡片图像。服务器只会确保游戏是公平的,没有人作弊。用户的计算机上会有所有的卡片图像文件。他们将下载一个客户端来玩游戏,并连接到服务器上与其他p