奔跑专题提供奔跑的最新资讯内容,帮你更好的了解奔跑。
SpriteKit框架是专门为创建游戏设计的。 简单的说,使用SpriteKit就是使用节点。SpriteKit节点都是SKNode的实例,或是它的一个子类。存在大量不同的子类:SKSpriteNode表示一幅图像或者一个彩色矩形。SKShapeNode绘制一条bezier路径,SKEffectNode向其子节点或其他一些子类应用例如模糊或色调之类的图像特效。 当我们希望制作使用SpriteKit
补充一下,Sprite是精灵的意思喔~是不是感觉萌萌哒~~~~~ SpriteKit节点: 不同的节点做不同的事情: SKSpriteNode:显示一个图像或者一个彩色矩形。 SKLabelNode:显示文本 SKShapeNode:显示任意UIBezierPath SKEffectNode:向其所有子节点应用图像特效,比如模糊或者色移。 空的SKNode对象,可以将多个节点划分为一组。 下面是使
纹理是spriteKit可以使用的图像数据块。SKSpriteNode在设置的过程中会自动将图像转化为纹理。 在任何游戏中,纹理通常都是最大的内存耗用着。 也可以直接创建一个SKTexture对象,用以存储和管理纹理内存。 一种节省纹理内存、提高性能的方法是:将尽可能多的不同图片打包为单个纹理。将100个小图片打包为单个纹理,要比在各个纹理中存储100个小图片更好一些。 Xcode为生成纹理贴图集
首先是字体: 这段代码可以打印出系统支持的所有字体名,并设置字体为Zapfino let lableOfMenu = SKLabelNode(text: "welcome to YellowMoon!") for familyName in UIFont.familyNames() as [String]{ for fontName in UIFont.fo
形状节点ShapeNode用于显示一些一般形状:矩形,圆圈,三角形等等。 详细的设置代码如下: let shapeNode = SKShapeNode(rectOfSize: CGSize(width:20, height: 20)) shapeNode.position = CGPoint(x: size.width/3.0, y: size.height/3.0)
// 照明效果 let lightMyNode = SKLightNode() lightMyNode.enabled = true lightMyNode.lightColor = UIColor.yellowColor() lightMyNode.position = CGPoint(x: size.width/2.0, y: s
SceneKit是一组类,可以用来在App中创建和呈现3D场景。 它还可以和core animation和sprite kit无缝交互,这就意味着我们可以在多种上下文中使用SceneKit 1、SceneKit的结构 SceneKit通过SCNView来呈现一切。它是UIView(NSView For OS X)的一个子类。在SCNView的内部,创建和准备一个场景(SCNScene)。场景中包含
1、SCNScene的内容可以表现为动画。动画可以合并,如果想一个节点应用了一个动画,则所有的子节点将一起变化。 下面添加一个上下移动的动画 // 为场景中的内容实现动画 let moveUpAndDownAnimation = CABasicAnimation(keyPath: "position") moveUpAndDownAnimation.byValue
材料定义呈现对象的方式。默认情况下,所有对象都是由之中平整的白色的无光泽材料制成。但是我们可以做大幅度修改。可以修改的内容如下所示: *散射分量diffuse:材料的基本颜色和纹理 *反射分量specular:材料的亮度如何,应当如何反射光 *发光分量 *法向分量normal:材料表面是否应具有更多细节来反射光 // 质感 let redMetallicMaterial = SCN
命中检测过程是指在视图上去一点,找出3D中的哪个对象位于视图上这个点的下方。实际上就是要回答:我点了谁? 在对一个SceneKit视图进行命中检测时,会得到一个SCNHitTestResult对象的数组,其中描述了找到的对象,以及该对象的相关信息。 下面这段代码可以让你点击的地方短暂的发亮一下: import UIKit import SceneKit import SpriteKit clas
约束是影响节点位置和方向的规则,我们可以向节点添加约束。 将约束与动画,物理特性或用户输入相结合,可以快速的设置复杂的场景以及节点之间的关系。约束用SCNConstraint类实现。 为了演示约束,我们将添加一个棱锥~这个棱锥将一直盯着胶囊看~哈哈~上代码: // 约束 let pointer = SCNPyramid(width: 0.5, height: 0.9, length
COLLADA文件格式是用于交换3D图形信息的业内标准XML格式。COLLADA文件(扩展名为.dae)可以包含各种有用的东西,包括几何体信息,材料,纹理,甚至是具有节点层次结构的完整场景。 COLLADA文件与库非常相似,可以进入其中,从中仅找出自己想要的项目。或者,可以将它们看作整个场景,交给SceneKit去渲染。
SceneKit配有一个3D物理引擎。物理引擎向场景中添加物理仿真。 为了向SceneKit的一个节点添加物理仿真,创建SCNPhysicsBody的一个实例,并将它附加到该节点。这个对象有了物理实体后,就开始受到物理仿真的影响。 物理实体有自己的需求。为了知道对象之间应当如何碰撞,物理系统需要知道对象的物理形状。系统很精心的将这一信息与节点的可见几何体隔离开来,因为经常会有这样一些情况:我们有一
1、AVFoundation是一个功能强大的庞大框架,能够对音频和视频执行各种复杂操作。 AVFoundation被设计用来加载和播放大量流行的视听格式。 AVFoundation将可以播放的媒体称为资产。资产可以从URL加载,也可以从其他资产创建。 当希望播放一个文件时,可以创建一个AVPlayer来控制播放。 2、用AVPlayer来播放视频 AVPlayer类是一个高级对象,可以播放AVFo
AVPlayer被设计用来播放任意类型的视频或者音频。AVFoundation还提供了一个专门为播放声音而设计的类,名为AVAdioPlayer。 对于播放音频来说,AVAdioPlayer是一种比AVPlayer更加简单的选择,并且还有优点呦: AVAdioPlayer允许为每位玩儿家设定音量; AVAdioPlayer更容易循环; 可以查询一个AVAdioPlayer,获知其当前输出功率,用来
除了播放视频和音频之外,iOS和OS X还允许访问内置的相机系统来采集视频和音频。 然而,这两个系统用于访问相机的API是不同的。 要在iOS上从相机采集视频和照片,可以使用一个名为UIImagePickerController的视图控制器。 简言之,UIImagePickerController允许我们呈现一个几乎与iPhone内置相机应用程序完全相同的界面。应用这一个界面,用户可以获取照片,将
用相机采集照片很有用,然而有时候用户也喜欢处理之前拍摄的或者从互联网下载的图片。 为了让用户从app中访问他的照片库,再次使用UIImagePickerController。如果希望呈现照片库,而不是相机,可以将图像选取器的sourseType属性设置为UIImagePickerControllerSourceType.PhotoLibrary(SavedPhotosAlbum)。 当呈现一个图像
1、偏好设置 app需要保存一些有关用户偏好设置的信息。在用户退出应用程序后,这些设置应当保持不变,所以,需要将它们存储在某些地方。 NSUserDefaults类允许以键值形式保存设置信息,我们不需要加载和读取设置文件,这些信息就会自动被保存。 2、注册默认偏好设置 当应用程序首次获得一个偏好设置的对象时(也就是应用程序第一次启动时),这个偏好设置对象是空空得~为了创建默认值,需要提供一个字典,
文件可能存储在:应用程序的捆绑包中,或者是磁盘中的其他位置。 从应用程序的捆绑包中提取文件十分简单。使用NSBundle.mainBundle()中的方法即可。下面介绍如何处理存储在其他位置的文件。 应用程序可以访问系统中几乎任何位置的文件。这里所说的几乎任何位置,取决于应用程序运行在何种操作系统上,以及应用程序是否存在于沙盒中。 使用NSFileManager: 使用NSFileManager对
在沙盒中运行的应用程序只能访问存在于沙盒中的文件,并且在指定的沙盒容器内可以无限制的进行读取和写入。此外,如果用户授权访问一个指定的文件或文件夹,沙盒还允许应用程序读取或者写入该位置。 启用沙盒: 在导航窗格顶部选择项目 在capabilities选项卡中找到app sandbox,并打开。 在沙盒设置屏幕上,可以指定应用程序应当具有访问哪些部分的权限。 打开和保存面板: 要让用户指明你的 app