在几何体系中通常使用“笛卡尔”坐标系来描述坐标,就像下图展示的那样,通过左手或是右手来描述坐标系。
但是在手机游戏开发中,界面UI坐标系有以下三种类型:
UI坐标系:在iOS/Android/Windows SDK这些系统平台场,通常使用的UI坐标系定义如下:
屏幕左上角就是坐标系原点(0,0);x坐标从左向右增量变换,y坐标从上向下增量变换,如下图所示:
Direct3D坐标系:DirectX坐标系使用的是左手“笛卡尔”坐标系。
OpenGL和Cocos2d坐标系:Cocos2d-x/-html5/-iphone/OpenGL坐标系使用的是右手“笛卡尔”坐标系。
在2D游戏世界中,只使用到x和y坐标。屏幕左下角是坐标系的原点(0,0);x坐标从左向右增量变换;y坐标从下向上增量变换。
下面通过cocos2d-x贴图来详细说明一下。
运行结果如下图所示:
在上图中,蓝色圆和黑色圆使用的是同一坐标(100,100),但不同的是它们的描点坐标不同,这里的描点坐标可以理解为坐标系的原点。蓝色圆的描点坐标是(0.5,0.5),而黑色圆的描点坐标是(0,0)。
在cocos2d中锚点的默认位置是在对象的中间即cpp(0.5,0.5)位置,cpp(0,0)为左下角cpp(1,1)为右上角。