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

本文介绍如何使用SpriteKit创建简单的游戏场景,包括显示图像、文本和处理点击事件以实现场景切换等功能。

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

补充一下,Sprite是精灵的意思喔~是不是感觉萌萌哒~~~~~
SpriteKit节点:
不同的节点做不同的事情:
SKSpriteNode:显示一个图像或者一个彩色矩形。
SKLabelNode:显示文本
SKShapeNode:显示任意UIBezierPath
SKEffectNode:向其所有子节点应用图像特效,比如模糊或者色移。
空的SKNode对象,可以将多个节点划分为一组。

下面是使用SKSpriteNode显示一个小黄人图片的栗子:

import UIKit
import SpriteKit

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        // 当屏幕发生变化时的效果
        self.scaleMode = .AspectFill

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

        let spriteNode1 = SKSpriteNode(imageNamed: "littleYellowMan.jpg")
        spriteNode1.position = CGPoint(x: size.width/2.0, y: size.height/3.5)
        spriteNode1.size = CGSize(width: size.width, height: size.height/3)

        self.addChild(spriteNode1)
        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)
    }
}

ok,下面要来试一试接受点击事件:并且做场景切换,这一步需要3个文件咯,那个func touchesBegan负责处理点击事件咯~

import UIKit
import SpriteKit

class MenuScene: SKScene {
    override func didMoveToView(view: SKView) {
        let lableOfMenu = SKLabelNode(text: "welcome to YellowMoon!")
        lableOfMenu.fontSize = 20
        lableOfMenu.position = CGPoint(x: size.width/2.0, y: size.height/2.0)

        self.addChild(lableOfMenu)
    }

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        let showSprite = GameScene(size:self.size)

        let transitionFromHere = SKTransition.moveInWithDirection(SKTransitionDirection.Right, duration: 0.5)

        self.view?.presentScene(showSprite, transition: transitionFromHere)
    }
}
import UIKit
import SpriteKit

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        // 当屏幕发生变化时的效果
        self.scaleMode = .AspectFill

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

        let spriteNode1 = SKSpriteNode(imageNamed: "littleYellowMan.jpg")
        spriteNode1.position = CGPoint(x: size.width/2.0, y: size.height/3.5)
        spriteNode1.size = CGSize(width: size.width, height: size.height/3)

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

class spriteKitViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let scene = MenuScene(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、付费专栏及课程。

余额充值