国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

Cocos2d-x學習筆記之世界坐標系、本地坐標系、opengl坐標系、屏幕坐標系

2020-01-26 15:20:05
字體:
來源:轉載
供稿:網友

 cocos2d-x的坐標系很重要,想要學好該引擎,深入理解它的坐標體系很重要。注釋寫的很清楚了,對照上運行結果一塊來看代碼吧!

bool HelloWorld::init(){  bool bRet = false;  do  {    CC_BREAK_IF(! CCLayer::init());		//opengl的坐標系和世界坐標系相同,都是以屏幕左下角為原點,向右為x軸的增加方向,向上為y軸的增加方向		//這里的世界指的是游戲世界		//屏幕坐標系是以左上角為原點,是我們熟悉的   //本地坐標系也叫節點坐標系,世界坐標系是相對于整體而言的,而本地坐標系是相對于父節點而言的,理解這點很重要		//CCDirector::sharedDirector()->convertToGL() 轉換到OPENGL坐標系		//CCDirector::sharedDirector()->convertToUI() 轉換到屏幕坐標系		//CCNode::convertToWorldSpace()	把本地坐標系轉換到世界坐標系		//CCNode::convertToNodeSpace()	把世界坐標系轉換到本地坐標系		//sprite1、sprite2的圖片大小是100,100		CCSprite * sprite1 = CCSprite::create("image1.png");		sprite1->setPosition(ccp(100,100));		//將sprite2添加到sprite1節點中,這時候是以sprite1的左下角為原點,雖然sprite1的錨點是在它圖片的中間		CCSprite * sprite2 = CCSprite::create("image2.png");		//setPosition中設置的坐標是sprite2的本地坐標		sprite2->setPosition(ccp(100,100));		sprite1->addChild(sprite2);		//getPosition中獲得的坐標也是sprite2的本地坐標		CCPoint point = sprite2->getPosition();		CCLog("point.x=%f,point.y=%f",point.x,point.y);		//獲得sprite2的opengl坐標系,屏幕坐標系,世界坐標系,本地坐標系		//convertToWorldSpace的傳入參數是sprite2的節點坐標系(本地坐標),也就是setPosition中傳入的參數,而convertToNodeSpace的傳入參數是sprite2的世界坐標系,看清誰是調用者,傳入的參數又是什么		CCPoint worldSpace = sprite1->convertToWorldSpace(point);		CCPoint nodeSpace = sprite1->convertToNodeSpace(worldSpace);		//以下倆個函數完成同樣的功能,只不過這次的sprite2的坐標是基于sprite1的錨點的,而不是左下角了,所以我們傳入了ccp(50,50)		CCPoint worldSpaceAR = sprite1->convertToWorldSpaceAR(ccp(50,50));		CCPoint nodeSpaceAR = sprite1->convertToNodeSpaceAR(worldSpaceAR);		//convertToUI中傳入的是opengl坐標系,因為opengl坐標和世界坐標系是相同的,所以我們傳入世界坐標		CCPoint ui = CCDirector::sharedDirector()->convertToUI(worldSpace);		CCPoint opengl = CCDirector::sharedDirector()->convertToGL(ui);		CCLog("opengl.x=%f,opengl.y=%f",opengl.x,opengl.y);		CCLog("ui.x=%f,ui.y=%f",ui.x,ui.y);		CCLog("worldspace.x=%f,worldspace.y=%f",worldSpace.x,worldSpace.y);		CCLog("nodeSpace.x=%f,nodeSpace.y=%f",nodeSpace.x,nodeSpace.y);		CCLog("worldspaceAR.x=%f,worldspaceAR.y=%f",worldSpaceAR.x,worldSpaceAR.y);		CCLog("nodeSpaceAR.x=%f,nodeSpaceAR.y=%f",nodeSpaceAR.x,nodeSpaceAR.y);		this->addChild(sprite1);    bRet = true;  } while (0);  return bRet;}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 安阳县| 沙坪坝区| 迭部县| 西贡区| 安康市| 双桥区| 清涧县| 华蓥市| 钦州市| 三河市| 莒南县| 石景山区| 小金县| 宜良县| 维西| 吐鲁番市| 锡林郭勒盟| 隆回县| 高唐县| 长子县| 琼海市| 盐山县| 民乐县| 安乡县| 育儿| 监利县| 黎城县| 三穗县| 廊坊市| 辉南县| 中卫市| 双桥区| 安阳县| 峡江县| 颍上县| 吐鲁番市| 鱼台县| 任丘市| 新野县| 安丘市| 安丘市|