中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Cocos2dx開發之錨點實例講解

發布時間:2020-07-22 04:44:51 來源:網絡 閱讀:489 作者:龍顏碩 欄目:開發技術

Cocos2dx開發之錨點實例講解

寫在前面——

   如果轉載請注明出處,謝謝大家支持

   同步更新51CTO博客

——Forward

我的微博——龍顏碩

錨點概念

由于我們在使用Cocos2dx進行開發時,一般都是在場景中加載精靈來實現的,而精靈上掛載的往往都不是一個點而是一張圖片資源,那么我們在場景中設置這個精靈的位置時,對這張資源圖片來說是應該把這張圖片資源中的哪個點與我們設置的點對齊呢?這里就引出了錨點這個概念,我們通過設置錨點來確定資源圖片上哪個點與我們設置位置點對齊。簡而言之,錨點確定精靈自己在父節點的加載位置。

幾何圖形說明

上面的文字描述可能不太容易理解,下面作者發揚嚴謹的科研風格,繪圖做以下說明:

假設我們要把一個精靈加載到場景中去,這個精靈上使用的圖片資源是一張四邊形圖片,如下圖所示

Cocos2dx開發之錨點實例講解

1

OK,當我們使用Cocos2dx下對應的API要給這個精靈設置一個特定的位置時,設置的結果是什么樣的呢?這就與我們給定這個精靈的錨點有關,設置不同的錨點,加載結果也會不同。錨點的設置可以根據你的喜好隨意設置,但是一般來說常用的錨點有哪些呢?如下圖紅色圈所表示的——左下角、左上角、右上角、右下角,在Cocos2dx中默認使用的錨點坐標是四邊形的幾何中心點。

Cocos2dx開發之錨點實例講解

2

Cocos2dx中,我們可以使用setAnchorPoint這個接口來設置錨點,參數是一個cocos2d::CCPoint類型,這個點是(0.0f,0.0f~1.0f1.0f)之間的一個值。

錨點Demo演示

我們在下面這個場景中來做測試,首先如下圖所示,我們在這個場景中添加一個精靈A作為背景精靈:

加載代碼:

//添加背景資源

                  cocos2d::CCSprite* pBg = cocos2d::CCSprite::create("wndbg.png");

                  CC_BREAK_IF( !pBg );

                  pBg->setPosition(ccp(300.0f,300.0f));

this->addChild(pBg);

Cocos2dx開發之錨點實例講解

3

然后我們在這個精靈上開始增加另外一個精靈B作為測試精靈。

好,我們把測試精靈B的錨點設置為左下角(0.0f0.0f),然后加載到北京精靈A之上,如下圖所示:

加載代碼:

//加載測試精靈

                  cocos2d::CCSprite* pTestSprite = cocos2d::CCSprite::create("bubble.png");

                  CC_BREAK_IF( !pTestSprite );

                  pTestSprite->setAnchorPoint(ccp(0.0f,0.0f));

                  pTestSprite->setPosition(ccp(0.0f,0.0f));

                  pBg->addChild(pTestSprite);

結果展示:

Cocos2dx開發之錨點實例講解

4

再看下面,我們把測試精靈B的錨點設置為中間(Cocos2dx中默認錨點也是如此),加載結果:

加載代碼:

//加載測試精靈

                  cocos2d::CCSprite* pTestSprite = cocos2d::CCSprite::create("bubble.png");

                  CC_BREAK_IF( !pTestSprite );

                  pTestSprite->setAnchorPoint(ccp(0.5f,0.5f));

                  pTestSprite->setPosition(ccp(0.0f,0.0f));

                  pBg->addChild(pTestSprite);

加載結果如下

Cocos2dx開發之錨點實例講解

5

下來呢,再把測試精靈B的錨點設置為右上角(1.0f1.0f),加載結果如下:

加載代碼:

//加載測試精靈

                  cocos2d::CCSprite* pTestSprite = cocos2d::CCSprite::create("bubble.png");

                  CC_BREAK_IF( !pTestSprite );

                  pTestSprite->setAnchorPoint(ccp(1.0f,1.0f));

                  pTestSprite->setPosition(ccp(0.0f,0.0f));

                  pBg->addChild(pTestSprite);

加載結果展示:

Cocos2dx開發之錨點實例講解

6

NICE,至此,我們可以看到,測試精靈B錨點設置不會影響它在背景精靈上的位置(這個位置只是根據setPosition接口來改變),只會影響測試精靈B本身的資源圖片上的哪一點來與這個位置對齊。

不早了,該休息了,晚安!


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵寿县| 安宁市| 鹤岗市| 天全县| 丹棱县| 双柏县| 西贡区| 嘉定区| 商水县| 阿瓦提县| 共和县| 伊金霍洛旗| 桓仁| 昌宁县| 阿合奇县| 中牟县| 清苑县| 大理市| 伊川县| 任丘市| 青海省| 湖北省| 沁源县| 来宾市| 焦作市| 宝鸡市| 密山市| 沾化县| 永寿县| 卓尼县| 上高县| 玉林市| 大姚县| 梁河县| 班玛县| 区。| 礼泉县| 扶风县| 辽阳市| 新宾| 阿坝|