SceneKit_入門03_節(jié)點

SceneKit_入門01_旋轉(zhuǎn)人物
SceneKit_入門02_如何創(chuàng)建工程
SceneKit_入門03_節(jié)點
SceneKit_入門04_燈光
SceneKit_入門05_照相機
SceneKit_入門06_行為動畫
SceneKit_入門07_幾何體
SceneKit_入門08_材質(zhì)
SceneKit_入門09_物理身體
SceneKit_入門10_物理世界
SceneKit_入門11_粒子系統(tǒng)
SceneKit_入門12_物理行為
SceneKit_入門13_骨骼動畫
SceneKit_中級01_模型之間的過渡動畫
SceneKit_中級02_SCNView 詳細講解
SceneKit_中級03_切換照相機視角
SceneKit_中級04_約束的使用
SceneKit_中級05_力的使用
SceneKit_中級06_場景的切換
SceneKit_中級07_動態(tài)修改屬性
SceneKit_中級08_陰影詳解
SceneKit_中級09_碰撞檢測
SceneKit_中級10_濾鏡效果制作
SceneKit_中級11_動畫事件
SceneKit_高級01_GLSL
SceneKit_高級02_粒子系統(tǒng)深入研究
SceneKit_高級03_自定義力
SceneKit_高級04_自定義場景過渡效果
SceneKit_高級05 檢測手勢點擊到節(jié)點
SceneKit_高級06_加載頂點、紋理、法線坐標
SceneKit_高級07_SCNProgram用法探究
SceneKit_高級08_天空盒子制作
SceneKit_高級09_霧效果
SceneKit_大神01_掉落的文字
SceneKit_大神02_彈幕來襲
SceneKit_大神03_navigationbar上的3D文字

讓學(xué)習(xí)成為一種習(xí)慣

學(xué)習(xí)目標

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


你必須知道的概念

概念圖

場景

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

節(jié)點

在SceneKit 節(jié)點是個抽象的概念,節(jié)是個看不見,摸不到的東西条辟,沒有幾何形狀,但是它有位置冀偶,以及自身坐標系鬓梅。通俗的講,在場景中創(chuàng)建一個添加節(jié)點后,你就可以在這個節(jié)點上放我們游戲元素了横缔,比如人物模型铺遂,燈光,攝像機等等!
節(jié)點上可以添加節(jié)點的,每個節(jié)點都有自身坐標系茎刚。如圖襟锐,我們把節(jié)點2添加到節(jié)點1上去。

實戰(zhàn)目標

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 中
添加游戲框架

到這里,準備工作已經(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é)點你沒法放游戲元素上去议双,并且它有自身坐標系,這就是為什么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;
Scenekit_02.gif

]

代碼庫,聽說經(jīng)常給人點贊都當老板了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宗雇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子莹规,更是在濱河造成了極大的恐慌赔蒲,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嘹履,居然都是意外死亡,警方通過查閱死者的電腦和手機债热,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門砾嫉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窒篱,你說我怎么就攤上這事焕刮。” “怎么了墙杯?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵配并,是天一觀的道長。 經(jīng)常有香客問我高镐,道長溉旋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任嫉髓,我火速辦了婚禮观腊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘算行。我一直安慰自己色鸳,他們只是感情好童擎,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般淀歇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上聋迎,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天飞涂,我揣著相機與錄音,去河邊找鬼类少。 笑死叙身,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的硫狞。 我是一名探鬼主播信轿,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼残吩!你這毒婦竟也來了财忽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤泣侮,失蹤者是張志新(化名)和其女友劉穎即彪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡隶校,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年漏益,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片深胳。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡绰疤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舞终,到底是詐尸還是另有隱情轻庆,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布敛劝,位于F島的核電站余爆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏夸盟。R本人自食惡果不足惜蛾方,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望上陕。 院中可真熱鬧转捕,春花似錦、人聲如沸唆垃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辕万。三九已至枢步,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渐尿,已是汗流浹背醉途。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留砖茸,地道東北人隘擎。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像凉夯,于是被迫代替她去往敵國和親货葬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

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