cocos2d-x学习笔记(11)--坐标系
2012-08-15 10:08
295 查看
cocos2d-x学习笔记(11)--坐标系
本文出自http://www.wenbanana.com稻草人博客,欢迎访问!
在cocos2d-x中一共有四种坐标:
(1)屏幕坐标系
在windows系统中,默认的原点在屏幕的左上角,X轴向右,Y轴向下。
(2)GL坐标系
原点在左下角,X轴向右,Y轴向上。由于cocos2d-x使用的是open gl渲染引擎,而不是directx 3d引擎,那么GL坐标系就不和屏幕坐标系重合,这是要注意的一点。因此,当我们调用了一个屏幕响应事件时,如ccTouchEnded(CCTouch* touch, CCEvent* event);
此时我们CCPoint location = touch->locationInView(touch->View)返回点击处在屏幕坐标系的位置,而不是GL坐标系。因此就有将屏幕坐标系转换成GL坐标系的函数。
CCPoint convertedLocation = CCDirector::sharedDirector()->convertToGL(location);
(3)本地坐标系
游戏中,每一个对象都有一个自己的坐标系,这些坐标系就叫做本地坐标系。
相对于父对象的坐标系,原点在左下角,X轴向右,Y轴向上。举个例子,以我自己作为坐标原点,那么在我附近(在我这个坐标系内)的对象就是子对象,而我就是父对象,这些子对象的位置都是本地坐标系,是相对于我(父对象)来说的。下面我举一个代码来做说明:
..........
CCLayer* layer = new CCLayer();
CCSprite* player = CCSprite::spriteWithFile("player.png");
layer->addChild(player, 1);
................
在这里,player对象就是子对象,layer就是父对象,那么player相对于layer的位置就是在本地坐标系中的位置。如果,layer(父对象)发生移动,就是我们说的背景移动,那么,player(子对象)也会跟着移动,但子对象在本地坐标系中的位置不变,改变的是子对象在世界坐标系中的位置。
(4)世界坐标系
世界坐标就是所谓的绝对坐标,所有的对象虽然都有自己的本地坐标系,但这些对象同样的在世界坐标系中也有一个坐标。例如,整个地球就是一个世界坐标系,在地球上的每一个人都有一个唯一的坐标。
本文出自http://www.wenbanana.com稻草人博客,欢迎访问!
在cocos2d-x中一共有四种坐标:
(1)屏幕坐标系
在windows系统中,默认的原点在屏幕的左上角,X轴向右,Y轴向下。
(2)GL坐标系
原点在左下角,X轴向右,Y轴向上。由于cocos2d-x使用的是open gl渲染引擎,而不是directx 3d引擎,那么GL坐标系就不和屏幕坐标系重合,这是要注意的一点。因此,当我们调用了一个屏幕响应事件时,如ccTouchEnded(CCTouch* touch, CCEvent* event);
此时我们CCPoint location = touch->locationInView(touch->View)返回点击处在屏幕坐标系的位置,而不是GL坐标系。因此就有将屏幕坐标系转换成GL坐标系的函数。
CCPoint convertedLocation = CCDirector::sharedDirector()->convertToGL(location);
(3)本地坐标系
游戏中,每一个对象都有一个自己的坐标系,这些坐标系就叫做本地坐标系。
相对于父对象的坐标系,原点在左下角,X轴向右,Y轴向上。举个例子,以我自己作为坐标原点,那么在我附近(在我这个坐标系内)的对象就是子对象,而我就是父对象,这些子对象的位置都是本地坐标系,是相对于我(父对象)来说的。下面我举一个代码来做说明:
..........
CCLayer* layer = new CCLayer();
CCSprite* player = CCSprite::spriteWithFile("player.png");
layer->addChild(player, 1);
................
在这里,player对象就是子对象,layer就是父对象,那么player相对于layer的位置就是在本地坐标系中的位置。如果,layer(父对象)发生移动,就是我们说的背景移动,那么,player(子对象)也会跟着移动,但子对象在本地坐标系中的位置不变,改变的是子对象在世界坐标系中的位置。
(4)世界坐标系
世界坐标就是所谓的绝对坐标,所有的对象虽然都有自己的本地坐标系,但这些对象同样的在世界坐标系中也有一个坐标。例如,整个地球就是一个世界坐标系,在地球上的每一个人都有一个唯一的坐标。
相关文章推荐
- 【Cocos2d-html5游戏引擎学习笔记(11)】运动中速度效果
- Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系
- cocos2d-x学习笔记(2) 坐标系
- cocos2d-x学习笔记——坐标系,锚点,文本类
- cocos2d-x学习笔记(11)回调CallFunc,lambda
- Cocos2d-x学习笔记(三)—— 坐标系
- Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系
- cocos2d-x学习笔记11:xcode下编译运行helloworld
- cocos2d-x学习笔记11:xcode下编译运行helloworld
- Cocos2d-x学习笔记(11)(CCEditBox编辑框)
- Cocos2d-x学习笔记(3)cocos2d-x的坐标系相关概念的几点使用说明
- Cocos2d-x学习笔记(三)之 坐标系简介
- Cocos2d-X 学习笔记 11 制作Loading视图
- 【Cocos2d-x3.0学习笔记 11】Schedule的使用01
- 【Cocos2d-HTML5游戏引擎学习笔记(12)】Schedule定时器
- Scala学习笔记-11
- JavaScript高级程序设计(第3版)学习笔记11 内建js对象
- API Demos 2.3 学习笔记 (11)-- Views->Date Widgets
- hadoop学习笔记--11.hive DDL操作
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第二十四课:Cocos2D-X物理引擎之Box2D1-7