gpt4 book ai didi

java - 我应该如何实现这个?

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:37 26 4
gpt4 key购买 nike

我有 75 多个不同的文本文件,其中包含游戏中角色所说的一些对话。文本文件具有特殊命令,游戏可以将其解析为当前情况的正确输出。就像 %PlayerName% 会告诉游戏将玩家的名字放在对话的该位置。

当玩家切换已保存的游戏时,当前情况会发生变化,但其他情况会暂时保持不变。最快大约每 1/2 秒就会说出一行对话。

我应该做什么?我提出的两种实现似乎都有优点和缺点。

  1. 将每个文件中的每一行对话解析到内存中,并在影响输出的情况发生变化时重新加载每一行。
  2. 当要说出特定对话时从相应文件中读取并解析一段对话。
  3. 两者都是错误的,我应该做一些完全不同的事情。 (解释)

如果我使用一个,当硬盘同时打开并读取 75 个文件时,不会至少出现卡顿吗?这感觉是错误的做法。

如果我使用两个,无论用户玩游戏多久,我都会相当快地打开和关闭多个文件。出于某种原因,这也感觉是错误的做法。

最佳答案

如果占用一点 RAM 不是问题,并且文件不包含千兆字节的对话,您可以在应用程序启动时读入所有文件,已经识别出特定的行(即,为快速和简单的访问创建所有行的数组),但要推迟变量的替换,直到这些行在游戏中实际使用。简单的字符串替换不应导致游戏出现任何明显的延迟。

如果无法将所有文件保留在内存中,您仍然可以保留下一个(比如说三个或四个)文件的窗口,其中包含可从玩家当前位置直接访问的对话。随着玩家的前进,新文件会在后台加载。这确保了所需的行始终可以立即使用,并且每隔几分钟加载一个新文件不会导致过多的 IO。

关于java - 我应该如何实现这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9237819/

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