1

所以几年前我开发了一个 iPhone 游戏,它使用 CGPointMake 调用数百次来获取一些 OpenGL 的东西。那是在 480 是横向手机唯一尺寸的时候,但现在我想支持 568 磅大小的显示器。问题是现在没有居中,屏幕右侧有这个大的空白黑色竖条

我想知道在不重写这数百个 CGPoint 调用的情况下再次填充屏幕的最佳方法是什么。我在想,如果我能以某种方式重载 CGPointMake 以将每个偏移量偏移 (44,0),这将有助于使事物居中。或者也许 OpenGL 有一种方法可以将所有东西都向一个方向移动?我对OpenGL并不太熟悉,所以我不确定最好的起点是哪里——非常感谢任何帮助!

4

1 回答 1

1

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

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

既然这很拗口,你可以引入一个宏或一个函数:

CGPoint CGPointMakeHorizontalCenter(CGFloat y) { … }

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

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

于 2013-05-12T07:21:43.083 回答