我正在開發一款遊戲,我需要找到一種在遊戲中以char格式獲取某個'地圖塊'值的方法。我有一個可以照顧所有精靈的類DisplayableObject和一個照顧玩家對象的子類ThreeDCubePlayer。爲了便於渲染/更新所有內容,所有DisplayableObjects都存儲在一個數組中,第0個單元包含播放器(類型爲ThreeDCubePlayer)。 ThreeDCubePlayer具有與DisplayableObject不同的構造函數(它需要兩個附加參數),並且只有ThreeDCubePlayer具有我需要的GetMap()函數。所以,這裏是我迄今所做的:投射一個指向子類的指針(C++)
ThreeDCubePlayer* cubePlayer = &((ThreeDCubePlayer &)m_ppDisplayableObjects[0]);
char mapEntry = GetMapEntry((int)*(cubePlayer->GetMapX()), (int)*(cubePlayer->GetMapY()));
這是ThreeDCubeGame.cpp(控制地圖和鍵盤輸入功能)的一部分。我遇到的問題是這兩行在編譯時會給出'非法間接'錯誤。我認爲這個錯誤是當我試圖解引用不是指針的東西時,我確信cubePlayer看起來像一個指針...
有沒有人有我應該做什麼的想法?
在C++中使用C風格轉換通常意味着你的代碼和/或你的設計有問題,但是從你在這裏發佈的內容來看,它很難說更多。 – 2009-12-05 16:14:02
wayyyy許多演員。我們真正需要的是類聲明。 – 2009-12-05 17:30:31