a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 編程 > C > 正文

Cocos2d-x學(xué)習(xí)筆記之世界坐標(biāo)系、本地坐標(biāo)系、opengl坐標(biāo)系、屏幕坐標(biāo)系

2020-01-26 15:20:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 cocos2d-x的坐標(biāo)系很重要,想要學(xué)好該引擎,深入理解它的坐標(biāo)體系很重要。注釋寫(xiě)的很清楚了,對(duì)照上運(yùn)行結(jié)果一塊來(lái)看代碼吧!

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

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 色综久久| 精品亚洲在线 | 99re热精品视频 | 日本在线一区二区 | 91成人区| 成人男女激情免费视频 | 九九久久久 | 国产成人在线免费观看 | 国内在线精品 | 久久午夜影院 | 成人激情视频在线观看 | 看av网站| 欧美另类一二三四 | 国产一区二区精品在线 | 亚洲精品在线网站 | 美日韩一区 | 国产欧美日韩中文字幕 | 日韩在线资源 | 亚洲区一区二 | 亚洲v欧美 | 在线看亚洲 | 99免费在线观看视频 | 精品国产一区二区三区久久影院 | 久久久国产视频 | 一区二区三区国产 | 亚洲一二三 | 欧美午夜视频在线观看 | 人人看黄色 | 欧美日本在线 | 91高清视频在线观看 | 国产特黄大片aaaaa毛片 | 国产一区二区久久 | 日本一二三区视频 | 九九九色 | 久久九九99 | 久久专区| 一区二区免费 | 国产视频亚洲精品 | 日韩国产欧美视频 | 欧美日韩在线综合 | 精品国产欧美一区二区三区成人 |