1、前一篇文章最後,執行程式後視窗內一片黑,沒有任何內容。是因為場景內沒有新增任何東西,現在就來逐一新增相應的內容。
(1)**如下:
#include "myhelloworldscene.h"
using_ns_cc;
bool
myhelloworldscene::init()
while
(0);
return
brct;
}
(2)座標系:上述**中涉及到座標的問題,主要是setposition這個函式的引數如何確定的問題。
(3)一般來說,座標原點在左上角,往右是x軸,往下是y軸;但是在cocos2d中,座標原點在左下角,同樣是x軸向右,y軸向下。
(4)實際上,座標系除了x、y兩個方向,還有乙個z方向,這樣構成乙個立體的空間:
笛卡爾座標系
(4)setposition函式,設定的是精靈的位置,這個位置是二維的,也就是乙個由x、y構成的平面內的位置,那麼z方向體現在哪兒呢?體現在另乙個函式addchild中,這個函式有乙個int型的引數zorder,就是我們通常說的z序,也就是精靈(或是別的內容)在z軸方向上的位置。可是嘗試將文字的z序設定的比背景的小,這時文字就在背景後面了,當然顯示的時候就看不見了。
(5)關於ccdirector::shareddirector()這句將會反覆的使用,它是導演,一切場景由它來控制。當然此處,是通過它獲得顯示尺寸;
(6)我們設定背景的時候,是剛好充滿整個螢幕的,那麼如何確定setposition的引數呢?許多人的第一反應也許是(0,0),當然此處顯然不是如此;這裡的座標實際上應該是精靈中心(對角線交點)的座標(240,160)。
(7)關於這句ccdirector::shareddirector()->getvisibleorigin();貌似獲取到的就是座標原點(0,0),好像沒有什麼意義,實際上涉及到另外一些更複雜的座標知識,你可以想象乙個遊戲的地圖不可能只是視窗顯示的那麼點大,此時的座標該如何描述位置呢?在此先略過不提。
(8)根據以上內容,嘗試將文字「helloworld」移動到下側:
3、本文總結
(1)繼上文詳細介紹init中的背景和文字,即往空的場景中新增內容;
(2)新增內容,用到乙個函式addchild,通過該函式將建立好的物件新增到場景中,這樣場景中就有內容了;
(3)但是,此時場景中的內容是靜態的,程式與使用者是無互動的。
cocos2d x 動態背景
this settouchenabled true 開啟觸控 新增背景 ccsprite spritebackground ccsprite create background4.png spritebackground settag 100 this addchild spritebackgrou...
Cocos2d x學習筆記1
1.建立新的cocos2d x 3.0 專案 在命令列中輸入 cocos new helloworld 專案名稱 p com.ss.pku 包名字 l cpp 專案型別 d d cocos workspace 專案存放路徑 2.資料夾分析 resource 資料夾 存放資源檔案 include和so...
Cocos2d x學習筆記(7)
1 動作基本概念 ccactiong是動作類的基類,動作作用於ccnode,因此,任何乙個動作都需要ccnode物件來執行。ccaction作為乙個基類,其實質是乙個介面 抽象類 由它派生的實現類才是實際使用的動作。ccaction的絕大多數實現類都派生自ccfinitetimeaction,這個類...