簡體   English   中英

輸入和輸出帶有二進制的多維矢量

[英]Inputting and Outputting Multidimensional Vectors w/ Binary

我正在嘗試為游戲中的地圖創建一個簡單的類。 映射是由“平鋪”結構構成的二維向量。 我正在嘗試找出最好的方式來輸入/輸出這些圖塊。

例如,我以前使用基於.txt的加載格式。 .txt文件如下所示:

1 0 2 0 0 0 2 4 5 6 3 
2 4 5 0 0 0 2 0 0 3 4
0 3 5 2 5 3 0 5 5 3 4
0 2 0 5 0 6 0 5 7 8 4

然后,我將逐行查找每個圖塊的ID整數。 1代表草,0代表水,依此類推。 當解析器到達一行的末尾時,它將跳至下一個int行。

現在,我嘗試通過fwrite和fread並使用二進制文件和結構而不是ints來執行此操作。 我將如何去做呢? 我所看到的只是如何在二進制文件中存儲結構數組,而不是如何存儲多維結構數組。 有任何想法嗎?

編輯:是的,我可以只將2D向量存儲在文件中,但這不允許我進行無縫地圖加載,這是我所需要的。 我的地圖文件很大,因此一次加載10萬個圖塊會占用CPU。

如果您想讓地圖可讀,則需要編寫一個解析器。

但是,如果您不在乎,則應該執行完全不同的操作:使用序列化,例如從Boost中進行

在游戲中很常見的另一種情況是將地圖存儲為圖像文件。 然后,您可以在自己喜歡的圖像處理程序中編輯地圖,程序可以輕松地對其進行解釋。 許多庫可以為您讀取圖像數據(並將其作為2-D數組呈現給您),並且在游戲中,您可能已經擁有類似的內容。

暫無
暫無

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

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