- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我开始开发一个简单的卡片游戏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/
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
.NET 框架:4.5.1 我在 Blend for visual studio 2015 中遇到一个奇怪的错误,我找不到它的来源。 如果我在 VS 中打开我的 WPF 解决方案,它会加载并运行良好。
我经常遇到这样的问题,与 Hierarchical RESTful URL design 非常相似 假设该服务仅提供用户上传文档。 POST, GET /accounts PUT, DELETE /a
在 Rails 应用程序中,我使用 devise 来管理我的用户,而我用来销毁 session 的链接不再有效。它正在工作,现在我添加了事件管理员,但没有。 我的链接是 :delete, :clas
我已经坚持了超过 24 小时,试图按照此处发布的其他解决方案进行操作,但我无法使其正常工作。我是 Rails 新手,需要帮助! 我想让我的/users/edit 页面正常工作,以便我可以简单地更改用户
Devise 在以下情况下不会使用户超时: 用户登录,关闭选项卡,然后在超时 + X 分钟内重新访问该 URL。用户仍处于登录状态。 如果选项卡已打开并且稍后刷新/单击,则超时可以正常工作。这意味着
我想使用这样的 slider 我希望该 slider 根据提供给它的值进行相应调整。到目前为止,我只能应用具有渐变效果的背景,但无法获得这种效果。请通过提供样式代码来帮助我。
您应该为每种方法创建一个请求/响应对象,还是应该为每个服务创建一个? 如果我在所有方法中使用它,我的服务请求对象中将只有 5 个不同的东西,因为我对几乎所有方法使用相同的输入。 响应对象将只有一个字典
我正在尝试在 REST 中对实体的附件进行建模。假设一个缺陷实体可以附加多个附件。每个附件都有描述和一些其他属性(上次修改时间、文件大小...)。附件本身是任何格式的文件(jpeg、doc ...)
我有以下表格: Blogs { BlogName } BlogPosts { BlogName, PostTitle } 博客文章同时建模一个实体和一个关系,根据 6nf(根据第三个宣言)这是无效的。
如果 A 类与 B、C 和 D 类中的每一个都有唯一的交互,那么交互的代码应该在 A 中还是在 B、C 和 D 中? 我正在编写一个小游戏,其中许多对象可以与其他对象进行独特的交互。例如,EMP点击
关于如何记住我与 Omniauth 一起工作似乎有些困惑。 根据这个wiki ,您需要在 OmniauthCallbacksController 中包含以下内容: remember_me(user)
设计问题: 使用 非线程安全 组件(集合,API,...)在/带有 多线程成分 ... 例子 : 组件 1 :多线程套接字服务器谁向消息处理程序发送消息... 组件 2 :非线程安全 消息处理程序 谁
我们目前正在设计一个 RESTful 应用程序。我们决定使用 XML 作为我们的基本表示。 我有以下关于在 XML 中设计/建模应用程序数据的问题。 在 XML 中进行数据建模的方法有哪些?从头开始然
我正在设计一个新的 XSD 来从业务合作伙伴那里获取积分信息。对于每笔交易,合作伙伴必须提供至少一种积分类型的积分值。我有以下几点:
设计支持多个版本的 API 的最佳方法是什么。我如何确保即使我的数据架构发生更改(微小更改),我的 api 的使用者也不会受到影响?任何引用架构、指南都非常有用。 最佳答案 Mark Nottingh
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
我想用 php 创建一个网站,其工作方式与 https://www.bitcoins.lc/ 相同。确实,就每个页面上具有相同布局但内容会随着您更改链接/页面而改变而言,我如何在 php 中使用lay
我有一个关于编写 Swing UI 的问题。如果我想制作一个带有某些选项的软件,例如在第一个框架上,我有三个按钮(新建、选项、退出)。 现在,如果用户单击新按钮,我想将框架中的整个内容更改为其他内容。
我正在尝试找出并学习将应用程序拥有的一堆Docker容器移至Kubernetes的模式和最佳实践。诸如Pod设计,服务,部署之类的东西。例如,我可以创建一个其中包含单个Web和应用程序容器的Pod,但
我是一名优秀的程序员,十分优秀!