cocos2d:为什么要convertToGL,为什么要在其主体之前添加Child CCSprite?
我开始学习cocos2d,我想知道为什么我们实际上已经有了[touch view]< /code> 来自
[touch locationInView: [touch view]];
?
另外,我们首先“addChild”一个CCSprite,包含一个图像,然后我们设置它的body,ccsprite成为这个body的数据用户。改为“addChild”主体不是更好吗?还是有什么特殊目的?
谢谢
i'm starting to learn cocos2d, and i was wondering why actually we use convertToGL from CCDirector, [[CCDirector sharedDirector] convertToGL: touchLoc];
when we already have the [touch view]
from [touch locationInView: [touch view]];
?
Also, we first "addChild" a CCSprite, containing an image, and then we set its body, and the ccsprite becomes the data user of this body. Would'nt it better to "addChild" the body instead? or is it for any particular purpose?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为 OpenGL View(EAGLView 类)使用与 Cocoa Touch 不同的坐标系。
例如,Cocoa Touch 的 0,0 位置位于左上角,而 OpenGL 的 0,0 位置位于左下角。这就是为什么你需要将所有 UIView 坐标“转换为 GL”。
该转换还考虑了当前设备的方向。
This is because the OpenGL View (EAGLView class) uses a different coordinate system than Cocoa Touch does.
For example, the 0,0 position for Cocoa Touch is on the upper left corner, whereas the 0,0 position for OpenGL is in the lower left corner. That's why you need to "convert to GL" all UIView coordinates.
The conversion also takes into account the current device orientation.