SceneKit_入门01_创建旋转人物

致读者

iOS中自带有四大游戏引擎: Spritekit(2D) 、SceneKit (3D)、OpenGL_ES(较底层)、metal(效率高效,牛逼的不行)在未来的一段时间,我将持续编写这几个游戏框架的使用,请大家持续关注!我们现在开始吧!

问题: scenekit 是什么?

答: 苹果公司的一款3D 游戏引擎 能够和应用视图无缝结合

*学习目标
创建一个简单的3D 人物 ,能够自动旋转

*实现思路?
第一步, 创建一个场景,常用用来放游戏的各种元素,我们把游戏的元素称作节点,(如摄像机,灯光,地图,人物,等)第二步.添加摄像头,摄像头就好我们的眼睛,没有摄像头,你啥都看不到第三步,添加光源 ,没有光 你也啥都看不到第四步,添加人物精灵第五步,让人物运动起来

so easy! 让我操练起来吧!我们按照思路步骤一步一步往下走!
代码部分

1.第一步:配置工作

添加框架SceneKit.framework使用storyboard 的话,将view 的类设置SCVView

2.第二步:添加场景

-(void)addScence{
//场景资源文件名 art.scnassets/person.scn self.mainScene = [SCNScene sceneNamed:@"art.scnassets/person.scn"];
SCNView *view = (SCNView*)self.view;
view.scene = self.mainScene;
}

3.第三步:添加摄像头

-(void)addCamera{
// 节点SCNNode 这个是游戏中基本的对象 类似NSObject对象,它 有几个基本的属性 light(灯光) camera(摄像头) 还有其它的以后说。。。
/*
 创建摄像头的的一般步骤

1.创建一个节点
2.给节点绑定一个摄像机
3.设置摄像放在场景的坐标
4.把摄像机添加到场景中去
*/

SCNNode *cameraNode = [SCNNode node];
cameraNode.camera = [SCNCamera camera];
[self.mainScene.rootNode addChildNode:cameraNode];
// 摄像机 (常用属性 位置 角度 最大最小可见距离 以后会讲,莫着急)
cameraNode.position = SCNVector3Make(0, 0, 15);
}

4.第四步:添加灯光(直射定光 和 漫反射灯光两种)

- (void) add light{
/* 创建摄像头的的一般步骤
1.创建一个节点
2.给节点绑定一个灯光对象
3.设置灯光类型
4.设置灯光放在场景中的坐标
5.把定光节点添加到场景中去
*/
// 直射灯光SCNNode *lightNode = [SCNNode node];
 //lightNode.light = [SCNLight light]; 
// SCNLight 灯光对象lightNode.light.type = SCNLightTypeOmni;
 // 在社这里选灯光类型lightNode.position = SCNVector3Make(0, 10, 10);[self.mainScene.rootNode addChildNode:lightNode];
// 漫反射灯光SCNNode *ambientLightNode = [SCNNode node];
ambientLightNode.light = [SCNLight light];
ambientLightNode.light.type = SCNLightTypeAmbient;
ambientLightNode.light.color = [UIColor darkGrayColor];
[self.mainScene.rootNode addChildNode:ambientLightNode];
}

5.第五步:完成以上几步 就完成了基本的工作,接下来我们操作人物,让其旋转

- (void)rotationPerson{
// 1.索引场景中的人物
SCNNode *person = [self.mainScene.rootNode childNodeWithName:@"person" recursively:YES];
// 2.创建一个旋转行为
SCNAction *rotation = [SCNAction rotateByX:0 y:2 z:0 duration:1];
SCNAction *repeat = [SCNAction repeatActionForever:rotation];
// 3.让人物进行旋转
[person runAction:repeat];
}

ok,到这里已经把所有的准备工作做完了,是不是很简单!下面就是难点了!请看代码

- (void)viewDidLoad
{
[super viewDidLoad];

[self addScence];
 // 1添加场景
[self addCamera]; 
// 2添加摄像头
[self addlight]; 
// 3添加灯光
[self rotationPerson]; 
// 4渲染人物

}

// 可能你有很多的概念不清楚,可能你有很多代码看不懂,可能。。。。 这些都不是问题,请持续关注,我会持续由浅入深的写教程! 把这项技术传授给你!
代码在: https://pan.baidu.com/s/1hrKS9FY

via@新浪微博:王星凯SoWhat

你可能感兴趣的:(SceneKit_入门01_创建旋转人物)