将CGPoints缩放到更大的显示

时间:2013-05-12 06:55:49

标签: ios objective-c opengl-es cgpoint

所以我几年前在一款iPhone游戏上工作,使用CGPointMake调用了数百次OpenGL的东西。那时480是景观手机的唯一尺寸,但现在我想支持568点尺寸的显示器。问题是现在事情没有集中在屏幕右侧的这个空的黑色垂直条

我想知道再次填充屏幕的最佳方法是不重写这些数百个CGPoint电话。我在想,如果我能以某种方式重载CGPointMake来抵消每一个(44)它将有助于中心事物。或者也许有一种方法可以让OpenGL将所有方向都转移到一个方向?我对OpenGL并不太熟悉,所以我不确定最佳起点在哪里 - 非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

重载CGPointMake对我来说听起来太神奇了。所有这些事件是否真的只是重点?在这种情况下,您可以编写与屏幕无关的版本:

// Or something similar given your UI orientation and transformations
CGPointMake(CGRectGetMidY([[UIScreen mainScreen] bounds]), someY);

由于这是非常满口的,你可以引入一个宏或一个函数:

CGPoint CGPointMakeHorizontalCenter(CGFloat y) { … }

然后咬紧牙关,写一个漂亮的正则表达式,并用调用此CGPointMake替换所有居中的CGPointMakeHorizontalCenter引用。

(这一切都假设你只需要更好地集中处理。实际上,也许你还需要更改一些资产以更好地填充屏幕?我认为你可以只是拉伸整个旧的渲染代码来填充屏幕,但是看起来很难看。)