因此,几年前,我开发了一款iPhone游戏,该游戏使用CGPointMake数百次调用某些OpenGL。 480当时是横向手机的唯一尺寸,但那时候我想支持568点尺寸的显示器。问题是,事情现在还没有居中,并且屏幕右侧有一个很大的黑色竖线
我想知道再次重写屏幕的最佳方法是不重写这数百个CGPoint调用。我在想是否可以以某种方式使CGPointMake重载以使每个偏移量(44,0),这将有助于使事情居中。也许OpenGL有一种方法可以将所有内容向一个方向移动?我对OpenGL不太熟悉,所以我不确定最好的起点在哪里-任何帮助将不胜感激!
最佳答案
重载CGPointMake
听起来对我来说太神奇了。所有这些事件真的只是重点吗?在这种情况下,您可以编写与屏幕无关的版本:
// Or something similar given your UI orientation and transformations
CGPointMake(CGRectGetMidY([[UIScreen mainScreen] bounds]), someY);
由于这是一个很麻烦的工作,因此您可以引入一个宏或一个函数:
CGPoint CGPointMakeHorizontalCenter(CGFloat y) { … }
然后咬紧牙关,编写一个不错的正则表达式,并用对此
CGPointMake
的调用替换所有居中的CGPointMakeHorizontalCenter
引用。(所有这些都假设您只需要更好地居中。实际上,也许您还必须更改一些资产以更好地填充屏幕?我认为您可以拉伸整个旧的渲染代码来填充屏幕,但这看起来很丑陋)