В настоящее время я работаю над очень простой игрой, использующей среду 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")))
но, к сожалению, как я упоминал ранее, это изменение кода не работает так, как я планировал.
Итак, теперь, когда я дал действительно длинное многословное введение в мою проблему, вот мой вопрос.
Как вы извлекаете середину строки между двумя секциями, которые вам не нужны? Также та средняя часть, которая является вашей целью, имеет неизвестную длину.
Большое спасибо за любую помощь, которую вы, ребята, можете оказать. Если вам нужна дополнительная информация, пожалуйста, спросите; Я буду более чем рад загрузить часть или даже весь мой код для получения дополнительной помощи. Еще раз большое спасибо.