簡體   English   中英

我得到了相互矛盾的答案,我應該如何處理我的代碼?

[英]I'm getting contradictory answers, what should I do with my code?

我正在 C++ 和 DirectX 中制作 RPG 游戲。

我將游戲的所有數據存儲在 .txt 文件中,並使用 `ifstream/ofstream. 到目前為止,在談論生物統計數據時,這對我來說效果很好,並且我對生物名稱進行了破解,但這已成為一個問題。

我可以將字符串存儲在 txt 文件中並讀取它們,但我無法使用它們。 對於單個單詞,我有一個技巧,但現在我已經掌握了角色相互交談的故事情節,這是一個真正的問題。

我在 gamedevelopment.stackexchange 上詢問了如何將文本放在屏幕上,並被告知使用 D3Dtext,但它只接受 C 樣式的字符串,我只能從文本文件中讀取 C++ 字符串。 現在這是一個大問題,我願意將 go 退回並重新考慮需要坐的地方,因為在解決之前無法取得任何進展。

所以現在我有一堆問題,我不知道先問哪個:

  1. 我想要一種像圖形一樣繪制字母的方法。 有人告訴我這是 D3Dtext 所做的,但如果可以的話,我想自己實現它,我只需要有關如果有人知道的信息?

  2. 如果我要像所謂的專家建議那樣使用 D3Dtext,我必須使用 C 樣式的字符串。 那么如何將 C 風格的字符串轉換為 C++ 字符串? 我現在有一個方法,但是它需要對每個字符串都使用 new 和 delete 運算符,我可以看到這是一個大問題,因為它變得越來越復雜?

  3. 有沒有辦法讀取 C 風格的字符串? 也許是 ifstream 的替代品。 我想保留 txt 文件,因為我真的不想使用 xml 但如果這是一個可行的解決方案,我可以更改文件格式?

  4. 我知道過早的優化,但我計划對游戲中的每一段文本使用相同的 function 那么在速度方面這樣做的好方法是什么(為什么我不想為每個字符串添加新/刪除)?

我很樂意提供幫助我所需的任何信息,請問。

std::string mystr = "Hello World.";
mystr.c_str(); // gets a null terminated const char* C-style string

如果您需要訪問上面的 c 字符串,請按照您當前的操作閱讀您的文件。

2) 使用c_str()方法將您的 C++ 字符串傳遞給 D3Dtext

some_D3Dtext_function(some_text.c_str())

3和4然后成為非問題。

您可以在 C 風格的字符串和 C++ 的std::string之間自由轉換。 只需使用my_cpp_string.c_str()來獲取 C++ 字符串的 C 字符串表示,並使用std::string my_cpp_string(my_c_string)從 C 樣式字符串初始化新的 std::string。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM