
上QQ阅读APP看书,第一时间看更新
3.8 纹理
纹理是用来渲染精灵的图像。Sprite Kit可以在开发者创建一个精灵时创建纹理,但在一些更复杂的游戏中开发者需要对纹理有更多的控制。本节将讲解关于纹理的一些内容。
3.8.1 纹理的创建
纹理一般使用SKTexture类来实现。要创建一个纹理,就是对此SKTexture类进行实例化,实例化纹理对象的方法有很多,一般最常用的是init!()方法,其语法形式如下:
convenience init!(imageNamed name: String)
其中,name用来指定图像。
3.8.2 纹理的显示
创建好纹理后,需要将纹理进行显示。显示纹理需要借助于SKSpriteNode对象,此时创建SKSpriteNode对象需要使用init()方法,其语法形式如下:
convenience init(texture texture: SKTexture!)
其中,texture用来指定纹理。
注意:创建好精灵对象后,还需要使用addChild()方法将精灵添加到场景中。
【示例3-19】以下将使用SKTexture类的init!()方法来创建纹理对象,然后使用SKSpriteNode类的init()方法实现纹理精灵的显示。代码如下:
(1)创建一个Game类型的项目,命名为3-13。
(2)添加图像1.png到创建项目的Supporting Files文件夹中。
(3)将设备的方向设置为水平方向。
(4)打开GameScene.swift文件,将此文件中多余的代码删除,然后编写新的代码,此代码将实现创建纹理以及显示纹理精灵的功能。代码如下:
import SpriteKit
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
var balltexture=SKTexture(imageNamed: "1.png") //创建纹理
var i=1
//遍历,为精灵添加纹理
for i;i<7;i++ {
var ball=SKSpriteNode(texture: balltexture)
ball.position = CGPointMake(150*CGFloat(i), 400)
ball.setScale(0.2)
self.addChild(ball)
}
}
}
此时运行程序,会看到如图3.41所示的效果。

图3.41 运行效果