所以我几年前在一款iPhone游戏上工作,使用CGPointMake调用了数百次OpenGL的东西。那时480是景观手机的唯一尺寸,但现在我想支持568点尺寸的显示器。问题是现在事情没有集中在屏幕右侧的这个空的黑色垂直条
我想知道再次填充屏幕的最佳方法是不重写这些数百个CGPoint电话。我在想,如果我能以某种方式重载CGPointMake来抵消每一个(44)它将有助于中心事物。或者也许有一种方法可以让OpenGL将所有方向都转移到一个方向?我对OpenGL并不太熟悉,所以我不确定最佳起点在哪里 - 非常感谢任何帮助!
答案 0 :(得分:1)
重载CGPointMake
对我来说听起来太神奇了。所有这些事件是否真的只是重点?在这种情况下,您可以编写与屏幕无关的版本:
// Or something similar given your UI orientation and transformations
CGPointMake(CGRectGetMidY([[UIScreen mainScreen] bounds]), someY);
由于这是非常满口的,你可以引入一个宏或一个函数:
CGPoint CGPointMakeHorizontalCenter(CGFloat y) { … }
然后咬紧牙关,写一个漂亮的正则表达式,并用调用此CGPointMake
替换所有居中的CGPointMakeHorizontalCenter
引用。
(这一切都假设你只需要更好地集中处理。实际上,也许你还需要更改一些资产以更好地填充屏幕?我认为你可以只是拉伸整个旧的渲染代码来填充屏幕,但是看起来很难看。)