Центрирование MacGLView в окне - PullRequest
2 голосов
/ 28 июня 2011

У меня есть приложение cocos2D, которое работает в соотношении 4/3, и я хочу войти в полноэкранный режим, изменяя размеры представления, чтобы сохранить соотношение сторон без отображения черных полос по бокам экрана. Итак, когда приложение переходит в полноэкранный режим, я делаю это:

NSRect aFrame=[[NSScreen mainScreen] frame];
[glView_ setFrameSize:NSMakeSize(aFrame.size.width,aFrame.size.height*1.2)];

Таким образом, я получил полноэкранный режим, но (как я хотел) соотношение не изменилось. Моя проблема сейчас в том, что glview не центрируется на экране. Он простирается от левой нижней точки, поэтому моя игра была обрезана неравномерно (все обрезки выполняются сверху). Я пытаюсь использовать [glview setFrameOrigin] и аналогичные, чтобы выбрать видимую часть представления без успеха.

Я просто хочу сместить мой вид на определенное количество пикселей вниз, чтобы он отображал центральную область всего вида. Возможно ли это?

Спасибо за совет.

1 Ответ

0 голосов
/ 18 августа 2011

Вы изменяете размеры glView_, но не его источник.

NSRect aFrame=[[NSScreen mainScreen] frame];

CGFloat x = 0.0f;
CGFloat y = aFrame.size.height;
CGFloat width = aFrame.size.width;
CGFloat height = aFrame.size.height * 1.2f;

glView_.frame = NSRectFromCGRect((CGRectMake(x, y/2 - height / 2, width, height));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...