SCNScene : 3D場(chǎng)景
- 概念:
- 通俗說(shuō)是游戲場(chǎng)景,游戲場(chǎng)景 主要是有幾何模型,燈光,相機(jī),和其他的屬性組成,SCNScene 包含 3D場(chǎng)景,和場(chǎng)景中的內(nèi)容.
- 作用:
- 添加各種元素到場(chǎng)景,讀取場(chǎng)景文件,將場(chǎng)景寫入文件......
- 代碼:
- 創(chuàng)建工程
- 導(dǎo)入游戲框架
#import <SceneKit/SceneKit.h>
- 創(chuàng)建游戲視圖
- 加載游戲文件
SCNView *scnView = [[SCNView alloc] initWithFrame:self.view.bounds];
scnView.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:scnView];
SCNNode: 節(jié)點(diǎn)
-
概念:
- 在SCeneKit 中節(jié)點(diǎn)是一個(gè)抽象概念,節(jié)點(diǎn)是看不見(jiàn)摸不著的東西,沒(méi)有幾何形狀,但是有位置,及其自身坐標(biāo).在場(chǎng)景中創(chuàng)建一個(gè)節(jié)點(diǎn)后,就可以在這個(gè)節(jié)點(diǎn)上放游戲元素了.比如任務(wù)模型,燈光,攝像機(jī)等.節(jié)點(diǎn)上可以添加節(jié)點(diǎn)
-
和場(chǎng)景的區(qū)別:
- 場(chǎng)景 簡(jiǎn)單說(shuō) 就是把人物,地圖,道具等放到一個(gè)空間中,組成一個(gè)大的環(huán)境,這個(gè)大環(huán)境就叫場(chǎng)景.
-
節(jié)點(diǎn) : 就是 場(chǎng)景中的一個(gè)可以放元素的地方.
-
項(xiàng)目實(shí)戰(zhàn):
- 創(chuàng)建工程
- 導(dǎo)入游戲框架
#import <SceneKit/SceneKit.h>
- 創(chuàng)建游戲視圖
- 加載游戲視圖
SCNView *scnView = [[SCNView alloc] initWithFrame:self.view.bounds];
scnView.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:scnView];
//2. 創(chuàng)建場(chǎng)景
SCNScene *scene = [SCNScene scene];
scnView.scene = scene;
5.創(chuàng)建節(jié)點(diǎn) 和 子節(jié)點(diǎn).
// 創(chuàng)建一個(gè) 球體
SCNSphere *sphere = [SCNSphere sphereWithRadius:0.5];
sphere.firstMaterial.diffuse.contents = @"earth.jpg";
// 創(chuàng)建節(jié)點(diǎn)并把球體綁定 到節(jié)點(diǎn)上
SCNNode *earthNode = [SCNNode nodeWithGeometry:sphere];
[scene.rootNode addChildNode:earthNode];
// 創(chuàng)建 字體
SCNText *scntext = [SCNText textWithString:@"Lenovo" extrusionDepth:0.3];
scntext.font = [UIFont systemFontOfSize:0.3];
//將字體綁定到節(jié)點(diǎn) 上
SCNNode *textnode = [SCNNode nodeWithGeometry:scntext];
textnode.position = SCNVector3Make(-1, 0, -2);
// 添加earth 節(jié)點(diǎn)的子節(jié)點(diǎn)上
[earthNode addChildNode:textnode];
6. 效果: