cocos2d: почему convertToGL и почему addChild CCSprite перед его телом? - PullRequest
7 голосов
/ 04 ноября 2011

Я начинаю изучать cocos2d, и мне было интересно, почему на самом деле мы используем convertToGL из CCDirector, [[CCDirector sharedDirector] convertToGL: touchLoc];, когда у нас уже есть [touch view] из [touch locationInView: [touch view]];?

Кроме того, мы сначала "addChild "CCSprite, содержащий изображение, и затем мы устанавливаем его тело, и ccsprite становится пользователем данных этого тела.Не лучше ли вместо этого «добавить ребенка» в тело?или это для какой-то конкретной цели?

Спасибо

1 Ответ

12 голосов
/ 04 ноября 2011

Это потому, что OpenGL View (класс EAGLView) использует другую систему координат, чем Cocoa Touch.

Например, позиция 0,0 для Cocoa Touch находится в верхнем левом углу, тогда как позиция 0,0 для OpenGL находится в нижнем левом углу. Вот почему вам нужно "преобразовать в GL" все координаты UIView.

Преобразование также учитывает текущую ориентацию устройства.

...