gpt4 book ai didi

ios - 实现MVC设计的难度(iOS游戏)

转载 作者:可可西里 更新时间:2023-11-01 03:56:25 25 4
gpt4 key购买 nike

我开始开发一个简单的卡片游戏iphone应用程序,但我已经完全陷入了几天的困境。这是我第一个在cs类之外制作的程序,不用说它比我做过的任何事情都大20倍。我对基本的oo实践和更简单的模式有很好的了解,但是我正在努力创建一个好的模型视图控制器。我可以开发一些程序化的、紧密耦合的应用程序,但我希望使用良好的oo实践。我想避免使用单例模式。
我理解全局,但当我试图把自己的脑袋放在它的实际实现上时,我会感到困惑。
到目前为止(没有使用像uiview这样的atm的api):
一个带有实例变量player*player、player*dealer和deck*gamedeck的gamemodel类。方法有-(void)dealcardtoplayer、(player*)getplayer(这样视图/控制器可以使用引用轻松获取分数)等。玩家类有手和分数等信息。这实际上是一个协议的实现,因此如果需要,我可以使用状态模式。
游戏控制器类。包含对GameModel和GameView的引用。我就知道这些了。如果有人在gameview中点击了一个点击按钮,那么该按钮的方法是否只是在控制器中调用一个点击按钮的方法,然后在控制器中调用gamemodel方法-(void)dealcardtoplayer:(card*)topcard?控制器是否经常轮询模型以确定播放器是否丢失,或者模型是否将控制器注册为观察者并更新它?
游戏视图类。包含对gamemodel和gamecontroller的引用(因为它向控制器发送输入)。这是否简单地调用了60次/秒模型中的getplayerhand,直到它发现一张卡被添加到手上,然后渲染它?如何处理动画?视图是否有自己的已渲染卡元素数组,并在检测到玩家手中的新卡然后渲染新卡时对其进行转换(为新卡腾出空间)?我觉得我也应该做一个状态模式。我想我在某个地方也读到了动画数据存储在模型中,但我不确定如何存储。
其他随机问题:
人工智能是否使用与播放器相同的精确控制器参考,并将其模拟输入发送到控制器?稍后我还想实现多人游戏。
我还想知道主菜单和暂停菜单是如何实现的。我会使用控制两个mvc的主控制器还是只在同一个gamecontroller中切换视图?我的第一个猜测是控制器将有一个menubuttonpressed方法,该方法将分配一个不同的视图引用(重写现有视图,并在游戏恢复时被清除和取消分配,以便您看到上一个视图)。如果我想使用同一个引擎来制作下一个侧滚动条,两个控制器将如何协同工作(我知道碰撞检测通常有自己的控制器)?
我总是通过例子学到最好的东西:我搜索过谷歌,但要么我遗漏了一些隐藏的宝石,要么我找不到我需要的信息。
主要问题:有没有什么关于实际实现oo/mvc游戏设计的必须阅读的深入教程或好书?
我为那些冗长的问题道歉,但我真的觉得我不能把我的头绕在复杂的MVC上。我觉得这个应用程序需要几个月的时间来运行一些基本的东西(一旦课程重新开始)。

最佳答案

欢迎来到现实世界!mvc是一个不错的理论,但它很少适合实践,特别是在objective-c/ios中,ui是摇尾巴的狗。
把精力花在好的结构上要重要得多,否则——不要把不相关的函数塞进同一个类中,不要把函数的一部分分散到十几个类中,等等。
你可能吃得太多了。但有时这是学习的好方法。

关于ios - 实现MVC设计的难度(iOS游戏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7072107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com