2010-06-22 53 views
0

我有一个关于iPhone游戏模型视图控制器(MVC)设计模式的问题。iphone MVC游戏设计问题

比方说,我有一个简单的游戏,使用ViewController。所以这个视图控制器有一个关联的窗口/视图,并在这个视图上采用按钮滑块等的播放器输入。

现在我也有ViewController的主窗口/视图的子视图,我实际上在这个子视图中做了各种多边形的动画。我也想在这个子视图中进行触摸事件。

我的问题是,在子视图中,我有所有的用户触摸代码和动画代码,因为玩家的触摸输入会影响动画直接更改旋转等。我的子视图类中有很多变量。 我违反了MVC设计吗?我应该将这些东西委托给另一个类或视图控制器吗?

非常感谢

回答

0

这取决于你想要完成什么。

假设您希望您的游戏在普通PC以及iPhone上运行。

很明显,你想隔离所有的特定于iPhone的代码,其中包括触摸。我假设你会在两个版本的游戏中都需要动画,所以这将成为控制器或模型的一部分。渲染动画将成为视图的一部分。

确定哪些功能属于视图以及哪些功能属于控制器的最简单方法是想象将应用程序移植到两个不同的查看器。它不一定是个人电脑和iPhone。它可以是Android和iPhone。 :-)

+0

很酷谢谢。更具体地说,如果我的自定义子视图有touchesBegan等回调,我如何使这些与我的控制器类通信? – songBong 2010-06-24 11:48:11

+0

想一下触动什么概念。我不知道您的特定应用程序,但是可以想到一些概念,如放大,缩小,以前的图像和下一张图像。你的观点与触摸有关。您的控制器处理适用于您的应用程序的概念。 – 2010-06-24 13:13:31