iOS游戏框架Sprite Kit技术详解
上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 运行效果