[問題] 如何在兩個class中共用一個物件

作者: rangerssohot   2019-06-07 23:37:35
開發平台(Platform): (Ex: Win10, Linux, ...)
目前在Ubuntu上使用Qt
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
目前我正在寫一個小精靈的遊戲,其中有小精靈和鬼兩個class(Pacman和Ghost)
在鬼的class裡面,鬼要怎麼走需要參考小精靈現在的位置(去追小精靈)
我現在在主程式MainWindow.cpp中new出小精靈和鬼,除了在視窗中顯示出物件,
用鍵盤改變小精靈的方向和位置時也是用MainWindow的小精靈指到Pacman去做
為了在Ghost中也能使用到小精靈的位置,我在Ghost裡也new了一個小精靈
但我想應該是因為兩個小精靈不是同一個的關係,
現在Ghost裡得到的小精靈的位置都是遊戲初始給的位置
不會隨著遊戲中位置改變而跟著改變座標的值
請問有沒有什麼方法可以讓Ghost.cpp和MainWindow.cpp共用一個小精靈的object?
麻煩大家幫忙了orz
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://reurl.cc/mQ0KM
上面這個連結是我在stackoverflow的發問
有附上部分比較重要的code
但是因為是第一次發問寫不夠清楚又不懂規定
目前被put on hold...(現在的問題內容有修改過)
另外我在那邊問的是如何取得其他class中的變數
因為我一開始以為單純是座標的值沒辦法傳到Ghost.cpp裡
但是看完下面那個回覆,我想應該是兩個class使用不同個小精靈的關係
指示還是不知道確切應該怎麼做@@
補充說明(Supplement):
作者: thefattiger (LT)   2019-06-07 23:48:00
我覺得你最好把基本的語法先弄懂再來搞這些小精靈是唯一的話最簡單的方法就是Sigleton Pattern
作者: CCWck (幹嘛要暱稱)   2019-06-08 00:36:00
你會寫一個有argument的函數嗎?把物件或是從物件得到的參數放進去就好
作者: RishYang (Rish)   2019-06-08 05:42:00
class跟object要分清楚,object是class的實例意思是class是設計圖,object是依據設計圖造出的成品根據一張設計圖,你可以造出n個看起來一模一樣的成品但是那些成品都是獨立的,個別成品都獨立佔有特定的時空範例 https://ideone.com/M7qqoJ
作者: mmmmei (mmm煤)   2019-06-08 11:55:00
可以用connect,當小精靈位置變化的時候,傳參數給每個鬼
作者: firejox (Tangent)   2019-06-08 13:10:00
你只要初始化的時候把小精靈傳鬼給就好了吧
作者: CarbonK (HTYISABUG)   2019-06-09 22:56:00
成大資訊系程設(二)齁
作者: HMKRL (HMKRL)   2019-06-10 11:57:00
樓上助教
作者: CarbonK (HTYISABUG)   2019-06-10 13:27:00
樓上也助教

Links booklink

Contact Us: admin [ a t ] ucptt.com