`
izuoyan
  • 浏览: 8972715 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【iOS-Cocos2d游戏开发】cocos2d 坐标系使用

 
阅读更多

【iOS-Cocos2d游戏开发】cocos2d 坐标系使用
无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥奔头了。所以玩cocos2d,一上来就先把各种与坐标有关的东西搞清楚。
  基本的两个坐标系:屏幕坐标系和GL坐标系。


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坐标




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics