坐标系有两种划分方式:屏幕UI坐标和OpenGL坐标。
屏幕UI坐标:原点在屏幕的左上角,X轴向右,Y轴向下。ios,android和windows phone使用的是屏幕坐标系。(触屏事件中getLocationInView()方法获取的是UI坐标)
cocos2dx坐标系和OpenGL坐标系一样,原点在屏幕的左下角,X轴向右,Y轴向上。(XY轴和中学课本上一致,放置精灵啊什么的其实用的这个坐标系,触屏事件中getLocation获取的是GL坐标)。
以上两种坐标系可通过Director类的方法进行相互转换。方法分别为:Vec2 convertToUI(const Vec2& point)和Vec2 convertToGL(const Vec2& point);
如果我们获取了UI坐标,在给对象setpoint时需要注意转换成GL坐标。
示例如下:
Vec2 Touch_Point; (定义精灵等对象安放的坐标点)
autotouch=touches.at(0);(取得多点触屏的对象) //Touch_Point=Director::getInstance()->convertToGL(touch->getLocationInView()); Touch_Point=touch->getLocation();