【发布时间】:2008-12-15 07:11:18
【问题描述】:
目前我正在使用 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")))
但不幸的是,正如我之前提到的,这种代码更改并没有像我计划的那样工作。
现在我已经对我的问题进行了冗长的介绍,这是我的问题。
如何在不需要的两个部分之间提取字符串的中间部分?此外,作为您目标的中间部分的长度未知。
非常感谢你们提供的任何帮助。如果您需要更多信息,请询问;我将非常乐意上传部分甚至我的整个代码以获得更多帮助。再次非常感谢您。
【问题讨论】: