上個月還是上上個月吧,忘記了,在處理物品額外特殊屬性,如加成攻擊、加成防禦等等等此類,而同類物品的基本數據都是從本地的一個物品表裏根據Type或者是名稱標識來讀取的,那些額外的,通過強化或者是隨機Boss掉落的極品屬性呢? 通過服務器傳送,OK。現在應該明白了遊戲世界處理 物品 這類對象的方式了。
我很杯具,接手羣聊系統的一個半成品,千辛萬苦的重構了整體模塊,然後萬惡的難題來了,羣聊天面板的聊天信息繪製。Orz,也算是由於底層GUI支持度不大夠吧,費了大概3天,除開滾動條 滾動方面有些缺陷外,可以和qq聊天信息文字面板做得一樣了(T_T)。這完成後,剩下的難題就是物品超鏈接到羣聊天信息裏面去,就是通過超鏈接,其他客戶端能夠看到這個物品的基本屬性Tips。杯具,主界面聊天面板是已經實現了這個功能的,但是小弟“才疏學淺”,“看不懂”無註釋和蛋疼邏輯的前作者(已離職)代碼,哀哉,自己又用了2天時間去思考了這個Tips顯示用的算法邏輯。在處理這個Tips的時候,有趣的地方來了:
void AddMsgInfo( CMsgInfo *pMsgInfo )
{
tgaChatData TempData;
::strcpy( TempData.szInfo, pMsgInfo ) ;
CItem TempItem;
::memcpy( TempItem, pMsgInfo+::strlen(pMsgInfo)+1, sizeof(CItem) ); // 把隱藏數賦值給物品
}
呵呵,希望都看明白了這個操作,這個我被忽悠了很久 應爲在 pMsgInfo[::strlen(pMsgInfo)]這位爲'/0',我可憐的Vs2008杯具的只能只能感應到 第一個'/0'處,太邪惡了。其他的就不多說了。
今天早上想到了Lua,只有一種變量,代表任何類型的變量,有感而發,回想這個經歷,的卻,只不過C++的char類型佔一字節,而::memcpy是按一字節拷貝。突然覺得現在數據 類型也是一種很抽象的東東,只不過被C++拿來定義字節大小,而我們的單元是BYTE,
而BYTE上面纔有char、int、float 等等等。- - 寫得好混亂。總之,想表達的是似乎從程序語法層面來講,類型也是一種抽象的? 而int這等只是特列的對象,不然Lua也無法做到那麼的乾淨 無類型剩有類型。一就代表所有。。。。
以上純屬YY- -