我正在制作一个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