我想在 iPad 上创建一个两人游戏,但我真的不知道我应该怎么做才对。我的概念就像两人游戏的“水果忍者”(一对一)。
我的意思是一个播放器将在 viewcontrollerA 中播放,而另一个播放器将在 viewcontrollerB 中播放(应该与 viewcontrollerA 倒置)。
我该怎么做?我是否需要创建两个视图控制器并通过控制器包含显示,还是有另一种更好的方法来做到这一点?谢谢!
我想在 iPad 上创建一个两人游戏,但我真的不知道我应该怎么做才对。我的概念就像两人游戏的“水果忍者”(一对一)。
我的意思是一个播放器将在 viewcontrollerA 中播放,而另一个播放器将在 viewcontrollerB 中播放(应该与 viewcontrollerA 倒置)。
我该怎么做?我是否需要创建两个视图控制器并通过控制器包含显示,还是有另一种更好的方法来做到这一点?谢谢!
在 iOS5 中,控制器接收定向事件、添加/删除回调以及将它们正确插入到响应者链中是一种幸运的方式。因此,如果您要这样做,这是最好的方法。只要你不做一些愚蠢的事情,比如将同一个视图添加到两个 UIViewController 中,你就可以了。
为什么这样做?我认为将游戏引擎放在主控制器上,编写一个客户端,将该客户端封装在一个子视图控制器上,然后为两个玩家重用它是合乎逻辑的。
如果你觉得你需要这样的东西,你也可以使用嵌套控制器来封装复杂性。示例:一个用于与游戏引擎对话的界面,另一个用于从引擎获取事件的屏幕。
UIViewController 包含很容易。您需要阅读 6 种方法并了解什么叫什么。欢迎您阅读文档,但简而言之:
addChildViewController:
添加一个子视图控制器。您还需要手动添加孩子的视图:[self.view addSubView:chieldVC.view];
。removeFromParentViewController
删除子视图控制器。transitionFromViewController...
替换视图或将视图移到前面。willMoveToParentViewController:
由 自动调用addChildViewController:
。仅当您要删除时才调用它(传递 nil 表示控制器成为孤儿)。仅当您需要自定义代码时才覆盖它。didMoveToParentViewController:
您必须addChildViewController
在动画完成后调用它(或者如果没有动画,请立即调用它)。automaticallyForward...
. 仅当您要手动转发轮换和外观呼叫时才覆盖并返回 NO。例如,要将一个控制器嵌套在另一个控制器中,请将子视图添加为常规视图,并按如下所示顺序调用 addChildViewController: 和 didMoveToParentViewController::
// from the parent view controller
ChildViewController *child = [ChildViewController new];
[self addChildViewController:child];
[self.view addSubview:child.view];
[child didMoveToParentViewController:self];
最好的方法是只拥有一个作为整个屏幕的根视图控制器,然后是每个玩家屏幕的两个子视图。你不想嵌套视图控制器