目前我正在使用 C++ 环境进行非常基本的游戏。该游戏曾经是一个学校项目,但现在我完成了编程课,我想扩展我的技能并在这个旧任务上更加繁荣。
我已经做了很多我很满意的改变。我已将所有数据集中到文件夹层次结构中,并且我已经获得了读取这些位置的代码。
然而,我的问题源于一个一直困扰我的非常根本的缺陷。
为了访问我正在使用的图像数据,我使用了以下代码:
string imageLocation = "..\\DATA\\Images\\";
string bowImage = imageLocation + "bow.png";
问题是当玩家拿起游戏板上的物品时,我的代码应该使用以下代码:
hud.addLine("You picked up a " + (*itt)->name() + "!");
打印到命令行,“你拿起了弓!”。但相反,它显示“你拿起了一个 ..\DATA\Images\!”。
在我集中我曾经使用的数据之前:
name_(item_name.substr(0, item_name.find('.')))
在我的 Item 类构造函数中将项目名称砍成弓或蜡烛之类的东西。在我改变了我的数据的结构之后,我意识到我必须改变我将名字砍成同样简单的“弓”或“蜡烛”的方式。
我已更改上述代码以反映我对数据结构的更改为:
name_(item_name.substr(item_name.find("..\\DATA\\Images\\"), item_name.find(".png")))
但不幸的是,正如我之前提到的,这种代码更改并没有像我计划的那样工作。
所以现在我已经对我的问题进行了真正冗长的介绍,这是我的问题。
如何提取不需要的两个部分之间的字符串中间?此外,作为您目标的中间部分的长度未知。
非常感谢你们提供的任何帮助。如果您需要更多信息,请询问;我将非常乐意上传部分甚至我的整个代码以获得更多帮助。再次非常感谢您。