opengl es中的横向模式和locationInView

时间:2009-12-21 16:00:48

标签: iphone cocoa opengl-es landscape

所以今天我为我的应用实现了横向模式。这是一个opengl es应用程序。我把它旋转了90度。我注意到的第一件事是接触不再有效。原因是对locationInView的调用仍然给出了坐标,就像应用程序处于纵向模式一样。

人们通常如何处理这个问题?我是否必须编写自己的locationInView版本以考虑手机的方向?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

这是默认行为。无论iPhone是纵向还是横向,屏幕坐标都不会改变,因此您需要在应用中进行调整。

答案 1 :(得分:1)

基本上有两种方法,每种方法都有自己的缺点/资产。

  1. 您可以将GLview附加到视图控制器,让它处理旋转事件并将窗口坐标转换为“视图”坐标。这是最简单的方法,但您的绘图性能可能会受到影响。

  2. 自己管理轮换。您需要添加自己的方法来处理旋转,由UIDeviceOrientationDidChangeNotification通知驱动。此方法应包括GL命令来旋转矩阵,翻译触摸等。