我正在製作一個iOS遊戲,每次將地圖上的建築物放置在一張地圖上,然後在轉彎結束時根據建築物類型處理經濟放置以及它們所放置的地形的類型。將事件卡添加到模擬遊戲Objective-C
我想添加一套活動卡片到遊戲中。每回合將從一副牌中抽出一張事件牌,這可能會影響牌本身,建築物或玩家迄今積累的資源總價值。
就類層次結構而言,我在頂部有一個包含Tilemap字典對象的Game對象,其中包含Tile對象。每個Tile對象都有一個Building對象,它可以是從一般Building對象繼承的幾個不同的類之一。
我很快就遇到了一個問題,我不能有建築物的建築物體內部的行動,我原計劃,因爲沒有辦法爲它直接操縱tilemap的(比如將某個建築物增加了更多的瓷磚比地圖正常,或者顯示它們是否具有某種資源)。所以我必須在Tilemap中放置一個switch語句和Building操作的方法。
現在我正在玩添加事件卡組。我想在Game類中有一個CardDeck類,然後CardDeck類將擁有一系列卡對象。遊戲會告訴CardDeck繪製一張新牌並執行該牌的動作。
問題當然是我如何獲得卡的動作來影響Tilemap或Game對象?由於封裝,他們彼此不知道任何事情。現在第一個想法是有一個switch語句,並將這些方法放入Game類中,但似乎這隻會讓它們影響Game對象的變量,或者發送消息到Tilemap來操縱它。如果我這樣做,反正每種類型的卡有不同的卡對象有什麼意義?
我知道這是一個基本的編程問題,但我無法弄清楚我腦中的邏輯。我真的很感謝這個幫助!謝謝!
這非常有幫助。我很感激你爲我輸入了代碼示例。它幫助了很多東西去點擊!另一個想法是嘗試Visitor模式,其中Map對象接受EventCards作爲訪問者。我想知道這是否可能? – bazola