第五節(jié) - SCNNode 用法講解

SCNNode 用法講解

學(xué)習(xí)目標(biāo)

理解游戲場景和節(jié)點的概念


你必須知道的概念

概念圖

場景

簡單的說,就是把人物细疚,地圖,道具等放在一個空間里,組成一個大的環(huán)境,這個大的環(huán)境就被稱為場景!

節(jié)點

在SceneKit 節(jié)點是個抽象的概念,節(jié)是個看不見,摸不到的東西,沒有幾何形狀,但是它有位置达皿,以及自身坐標(biāo)系姐刁。通俗的講芥牌,在場景中創(chuàng)建一個添加節(jié)點后,你就可以在這個節(jié)點上放我們游戲元素了,比如人物模型聂使,燈光壁拉,攝像機等等! 節(jié)點上可以添加節(jié)點的,每個節(jié)點都有自身坐標(biāo)系。如圖柏靶,我們把節(jié)點2添加到節(jié)點1上去弃理。

實戰(zhàn)目標(biāo)

1.掌握如何添加節(jié)點到場景中 2.給節(jié)點綁定幾何物體 3.給節(jié)點添加節(jié)點

開始吧

第一步.創(chuàng)建工程

和創(chuàng)建普通工程沒啥區(qū)別
讓學(xué)習(xí)成為一種習(xí)慣

我們已經(jīng)完成了創(chuàng)建工程的任務(wù),有的人就問了,你不是要將SceneKit 游戲開發(fā),怎么創(chuàng)建的是應(yīng)用工程,往下看,就這么任性!

第二步屎蜓,添加我們的游戲框架到我們的控制器ViewController中

添加游戲框架

到這里,準(zhǔn)備工作已經(jīng)全部做完,開始敲代碼啦痘昌!

第三步:創(chuàng)建一個游戲引擎專屬View視圖(SCNView)

    @property(nonatomic,strong)SCNView *gameView; // 設(shè)置一個引用屬性

      - (void)addSCNView{
    // 1.創(chuàng)建一個邊長為300 的視圖,放在屏幕中心
    self.gameView = [[SCNView alloc]initWithFrame:CGRectMake(0, 0, 300, 300)];
    self.gameView.center = CGPointMake(CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds));
    // 2.設(shè)置背景顏色為黑色
    self.gameView.backgroundColor = [UIColor blackColor];
    // 3.添加到父視圖中去
    [self.view addSubview:self.gameView];
    }

    - (void)viewDidLoad {
    [super viewDidLoad];
    [self addSCNView];
    }

此刻運行一下程序結(jié)果如下圖

運行結(jié)果

第四步.添加場景

    -(void)createScene{
    SCNScene *scene = [SCNScene scene];
    self.gameView.scene = scene;
    }

此時梆靖,如果你運行程序控汉,就和上面的效果一樣,沒有變化返吻,因為我們的場景中什么都沒有姑子。

第五步.添加節(jié)點

     // 創(chuàng)建節(jié)點,添加到scene的根節(jié)點上
     SCNNode *node = [SCNNode node];
     [scene.rootNode addChildNode:node];

提示:

scene.rootNode 有些朋友很好奇测僵,為什么Scene也有一個節(jié)點街佑,上面說個,沒有節(jié)點你沒法放游戲元素上去捍靠,并且它有自身坐標(biāo)系沐旨,這就是為什么scene也有一個根節(jié)點的原因。

此時你運行程序也和上面結(jié)果一樣,因為節(jié)點沒有幾何形狀!

第六步.給節(jié)點綁定一個幾何形狀的物體

     // 創(chuàng)建一個球體幾何綁定到節(jié)點上去
    SCNSphere *sphere = [SCNSphere sphereWithRadius:0.5];
    node.geometry = sphere;

運行一下

運行結(jié)果

此時我們已經(jīng)完成了實戰(zhàn)任務(wù)的1和2,繼續(xù)加油!

第七步.給節(jié)點添加節(jié)點

    // 創(chuàng)建子節(jié)點 給子節(jié)點添加幾何形狀
    SCNNode *childNode = [SCNNode node];
    // 設(shè)置節(jié)點的位置
    childNode.position = SCNVector3Make(-0.5, 0, 1);
    // 設(shè)置幾何形狀榨婆,我們選擇立體字體
    SCNText *text = [SCNText textWithString:@"讓學(xué)習(xí)成為一種習(xí)慣" extrusionDepth:0.03];
    // 設(shè)置字體顏色
    text.firstMaterial.diffuse.contents = [UIColor redColor];
    // 設(shè)置字體大小
    text.font = [UIFont systemFontOfSize:0.15];
    // 給幾點綁定幾何物體
    childNode.geometry = text;
    [node addChildNode:childNode];

友情提示:

extrusionDepth 字體的深度 firstMaterial.diffuse.contents 不知道沒關(guān)系磁携,后面會講的,單詞意思就可以理解.firstMaterial 第一個材質(zhì) diffuse 自身發(fā)散的contents內(nèi)容,我們設(shè)置為red 也可以設(shè)置圖片的!

我們用一鍵大招讓你自由旋轉(zhuǎn)物體

self.gameView.allowsCameraControl = true;

本節(jié)內(nèi)容已將講解完畢,趕緊動手操練一遍吧良风!讓學(xué)習(xí)成為一種習(xí)慣

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谊迄,一起剝皮案震驚了整個濱河市闷供,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌统诺,老刑警劉巖歪脏,帶你破解...
    沈念sama閱讀 212,657評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異粮呢,居然都是意外死亡婿失,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,662評論 3 385
  • 文/潘曉璐 我一進(jìn)店門啄寡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豪硅,“玉大人,你說我怎么就攤上這事这难≈畚螅” “怎么了葡秒?”我有些...
    開封第一講書人閱讀 158,143評論 0 348
  • 文/不壞的土叔 我叫張陵姻乓,是天一觀的道長。 經(jīng)常有香客問我眯牧,道長蹋岩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,732評論 1 284
  • 正文 為了忘掉前任学少,我火速辦了婚禮剪个,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘版确。我一直安慰自己扣囊,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,837評論 6 386
  • 文/花漫 我一把揭開白布绒疗。 她就那樣靜靜地躺著侵歇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吓蘑。 梳的紋絲不亂的頭發(fā)上惕虑,一...
    開封第一講書人閱讀 50,036評論 1 291
  • 那天,我揣著相機與錄音磨镶,去河邊找鬼溃蔫。 笑死,一個胖子當(dāng)著我的面吹牛琳猫,可吹牛的內(nèi)容都是我干的伟叛。 我是一名探鬼主播,決...
    沈念sama閱讀 39,126評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼脐嫂,長吁一口氣:“原來是場噩夢啊……” “哼统刮!你這毒婦竟也來了侄榴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,868評論 0 268
  • 序言:老撾萬榮一對情侶失蹤网沾,失蹤者是張志新(化名)和其女友劉穎癞蚕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辉哥,經(jīng)...
    沈念sama閱讀 44,315評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡桦山,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,641評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了醋旦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恒水。...
    茶點故事閱讀 38,773評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖饲齐,靈堂內(nèi)的尸體忽然破棺而出钉凌,到底是詐尸還是另有隱情,我是刑警寧澤捂人,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布御雕,位于F島的核電站,受9級特大地震影響滥搭,放射性物質(zhì)發(fā)生泄漏酸纲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一瑟匆、第九天 我趴在偏房一處隱蔽的房頂上張望闽坡。 院中可真熱鬧,春花似錦愁溜、人聲如沸疾嗅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,859評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽代承。三九已至,卻和暖如春交惯,著一層夾襖步出監(jiān)牢的瞬間次泽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工席爽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留意荤,地道東北人。 一個月前我還...
    沈念sama閱讀 46,584評論 2 362
  • 正文 我出身青樓只锻,卻偏偏與公主長得像玖像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,676評論 2 351

推薦閱讀更多精彩內(nèi)容