GL坐标系
Cocos2D以OpenglES为图形库,所以它使用OpenglES坐标系。GL坐标系x轴朝右,y轴朝上。默认原点在左下角。
屏幕坐标系
苹果的Quarze2D使用的是不同的坐标系统,屏幕坐标系原点在屏幕左上角,x轴向右,y轴向下。ios的屏幕触摸事件CCTouch传入的位置信息使用的是该坐标系。因此在cocos2d中对触摸事件做出响应前需要首先把触摸点转化到GL坐标系。
在调用任何需要设置位置的函数,或从函数获取位置信息前,必须要明确这个函数使用哪个坐标系。比如调用CCNode类的setPosition函数,它使用的就是GL坐标系。比如在处理触摸事件时CCTouch对象中的坐标就是屏幕坐标系。所以他们之间相互转换就变的比较重要了
GL坐标=====>屏幕坐标
CGPointtouchGL=ccp(x,y);//GL坐标X,Y
CGPoint touchScreen=[[CCDirector sharedDirector] convertToUI: touchScreen];//转换为屏幕坐标
屏幕坐标=====>GL坐标
CGPointtouchScreen=ccp(x,y);//屏幕坐标X,Y
CGPoint touchGl=[[CCDirector sharedDirector] convertToGL: touchScreen];//转换为GL坐标