0

总的来说,我对 objC 和游戏编程非常陌生,所以如果这是你们中的许多人可以做的问题,请原谅[self facepalm];

我正在尝试将游戏循环(NSObject)设置为控制器。还有一个 NSOpenGLView 通过 Interface Builder (MainMenu.xib) 与 Window 连接。循环应该处理所有键盘输入并管理在视图上绘制的内容。

我发现,我可以使用 - (void)keyDown:(NSEvent *)theEvent 来捕捉视图上的关键事件。如何将此输入传递给控制器​​/循环?

为了将 keyinput 发送到循环,我使用了带有 postNotificationName 的 NSNotificationCenter。但它似乎很慢而且“滞后”。这不可能是正确的方法。

任何提示都会很棒!

4

1 回答 1

0

使用与使用相同的方式NSControl传递事件。或者照做是 iOS 的UIControl's addTarget:action:forControlEvents:.

这个想法是将一些对象注册为此类事件的“侦听器”(目标),以及在触发事件时应该调用的方法(动作)。您可以通过为您的视图声明一些协议并使每个需要接收事件的类都符合它来使事情变得简单。

于 2013-05-24T02:44:42.920 回答