【发布时间】:2010-11-14 03:46:13
【问题描述】:
在 OS X 上使用 Objective-C/Cocoa 开发游戏,我完成了原型,尽其所能完成。这是一团乱麻,这是我的第一个游戏,但一切正常。我一直在阅读有关将事物组合在一起的最佳方法,而 MVC 似乎是最有意义的,但我有点困惑。
从哪里开始?用控制器?这对我来说似乎最有意义,但它是如何开始的?在我的原型混乱中,我拥有从视图的init 开始并从那里开始的所有内容。我可以对控制器做同样的事情,然后把需要的东西放在init 中吗?或者还有什么我可以用来做这件事的吗?如果是从init开始的,我怎么init控制器呢?
我将如何设置游戏世界?我目前使用两个数组,一个用于世界(墙、地板、门、水、熔岩等),一个用于项目(我将添加第三个用于字符)。地图(一个.plist)被加载,然后对象被创建并添加到它所属的数组中。数组去哪儿了?在原型中,它们也是视图的一部分,所以我想你可以说我将两者(视图和控制器)结合在一起。是否会为每个地图创建一个 Map 对象?会有一个包含所有地图的 Maps 对象吗?
这一切如何协同工作?玩家按下一个键,在游戏中移动角色。视图将处理输入,对吗?你会将它发送到控制器,它会检查地图/其他数组中的所有内容(墙壁、怪物等),然后返回结果吗?或者你会把它发送给玩家,它会去控制器,它会做所有的检查,然后返回结果?
我以为我的脑子里已经很好地布置了它,但我想得越多,我的想法就越不牢固,我就越困惑。如果您认为它会更有效地传达要点,请务必毫不犹豫地画出一些东西。
如果您花时间阅读所有这些内容,感谢您的耐心等待。根据我收集到的信息,大多数编写代码的人不使用任何类型的设计。在阅读了这篇文章之后,我明白为什么有些人会避免它,这很令人困惑,人们似乎认为这不值得花时间。我个人认为优势完全超过了劣势(有吗?),并且只有在每次想要实现新功能时都不必完全重写的方式来保持事物的组织性才有意义。没有设计你就不会建造房子、汽车或电器,为什么没有设计你会编写复杂的程序?
我问这个问题是因为我想以正确的方式做这件事,而不是用黑客和半途而废的方式来“胜利”。
【问题讨论】:
-
我要加 300 赏金。我想要一个该死的好答案。
-
如果您需要我澄清一些事情,或者您需要更多细节,请在这里告诉我,我非常愿意。
-
很抱歉第一次给出一个蹩脚的答案,我没有太多时间,但认为演示文稿可能会有所帮助:-)
标签: objective-c cocoa oop model-view-controller