swift 快速奔跑的兔几 本节的内容是:SpriteKit第一讲

本文介绍如何使用SpriteKit框架创建游戏。SpriteKit是专为游戏设计的框架,通过使用节点来构建游戏场景。文章详细解释了如何设置SpriteKit项目、添加场景及实现过渡效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpriteKit框架是专门为创建游戏设计的。
简单的说,使用SpriteKit就是使用节点。SpriteKit节点都是SKNode的实例,或是它的一个子类。存在大量不同的子类:SKSpriteNode表示一幅图像或者一个彩色矩形。SKShapeNode绘制一条bezier路径,SKEffectNode向其子节点或其他一些子类应用例如模糊或色调之类的图像特效。
当我们希望制作使用SpriteKit的游戏时,要组装一个充满这些节点的场景,并将这些节点添加到一个场景中。场景用SKScene表示。

制作使用SpriteKit的App
1、创建一个单视图的应用程序。
2、添加SpriteKit框架。在左侧的项目导航器顶部选择此项目,然后在右侧主编机器里面向下滚动,直到找到Linked Frameworks Libraries。单击+按钮,并从出现的列表里选择SpriteKit Framework
3、将视图控制器的类改成当前类的名字。打开主故事板,将视图的类修改为SKView。
4、添加代码,向该类的viewDidLoad中添加如下代码:

import UIKit
import SpriteKit

class spriteKitViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let scene = SKScene(size:self.view.bounds.size)
        scene.backgroundColor = UIColor.grayColor()
        let skView = self.view as! SKView
        skView.presentScene(scene)
    }


}

运行程序,可以看到灰色背景。

SpriteKit游戏由场景组成,每个场景包含了构成游戏各组成部分的所有图形元素。可以认为场景类似于普通应用程序中的视图控制器——视图控制器负责向视图提供数据,对用户操作作出回应,而场景负责创建合适的精灵,对用户输入做出回应。
上文中的方法 skView.presentScene(scene)是直接呈现场景。也可以使用过渡呈现场景。注意,游戏的第一个场景通常是直接出现,木有过渡。
实现过渡的代码:

 let transitionOne = SKTransition.moveInWithDirection(SKTransitionDirection.Right, duration: 0.5)
        skView.presentScene(scene,transition: transitionOne)

下面是一个示例,我们可以自定义一个SKScene的子类


import UIKit
import SpriteKit

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        self.scaleMode = .AspectFill

        let label = SKLabelNode(text: "I am rabbit")
        label.position = CGPoint(x: size.width/2.0, y: size.height/2.0)

        self.addChild(label)
    }
}
import UIKit
import SpriteKit

class spriteKitViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let scene = GameScene(size:self.view.bounds.size)
        scene.backgroundColor = UIColor.grayColor()
        scene.scaleMode = .AspectFill
        let skView = self.view as! SKView
        //let transitionOne = SKTransition.moveInWithDirection(SKTransitionDirection.Right, duration: 0.5)
        skView.presentScene(scene)
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值