iOS开发:Cocos2d-x坐标系统

移动开发 iOS 游戏开发
位置顾名思义就是物体的位置。在调用任何需要设置位置的函数或从函数获取位置信息前,必须要明确这个函数使用的是哪个坐标系,如调用CCNode类的setPosition函数,它使用的就是GL坐标系,而在处理触摸时间时CCTouch对象在宏的坐标就是屏幕坐标。

不同坐标系的介绍

笛卡尔坐标系

UI坐标系

在ios、安卓、wp一般的UI坐标布局中

  • 原点是在左上角

  • x从左到右递增

  • y从顶到底递增

像这样

Direct3d

DirectX中采取了笛卡尔左手坐标系

OpenGl和Cocos2d

采用了笛卡尔右手坐标系

在2d中,我们只是用2d的场景

如下:

Parent和Childrens

每个继承自CCNode的子类都有一个anchorpoint的属性

当决定放置位置和旋转中心时,均是以anchorpoint作为参照的

getVisibleSie, getVisibleOrigin vs getWinSize

得到当前屏幕大小

如何转换坐标

convertToNodeSpace

用于将在屏幕上的绝对位置转换为一个node相对于另一个node的方法

CCPoint point = node1->convertToNodeSpace(node2->getPosition());

这句代码中,node1相当于父节点,node2相当于子节点 node2的坐标根据node1相对改变

convertToWorldSpce

转换为世界坐标

convertToNodeSpaceAR

convertToWorldSpaceAR

这两个方法在转换过程中考虑到了anchorpoint

 

责任编辑:闫佳明 来源: oschina
相关推荐

2013-05-22 15:49:46

2011-12-12 10:40:08

Cocos2d-X游戏开发开发环境

2012-05-09 10:09:57

Cocos2d-xAndroidiOS

2011-07-27 14:48:21

iPhone Cocos2D 坐标

2012-04-17 12:44:38

cocos2d-x

2012-04-17 12:38:46

cocos2d-x

2013-04-16 10:02:47

cocos2d-x懒人Android开发

2011-08-08 17:17:55

Cocos2D 坐标 OpenglES

2014-07-31 16:57:30

2013-12-03 10:58:50

Cocos2D-X砖块地图

2013-06-03 17:04:20

CocoStudioCocos2D-X添加CocoStudi

2012-04-17 12:58:44

Cocos2D-X

2012-02-19 20:10:23

Cocos2d-x fCocos2dWindows Pho

2013-04-09 15:00:14

CocoaChina开发者大会cocos2D-x

2013-09-05 16:29:39

Cocos2d-x

2012-04-17 10:06:08

cocos2d-x

2012-04-17 12:47:27

cocos2d-x

2012-04-17 10:59:31

cocos2d-x

2013-12-08 22:51:53

微软TechEd2013Windows Pho

2013-11-13 16:31:32

Cocos2d-x
点赞
收藏

51CTO技术栈公众号