Swift语言实战晋级-第9章 游戏实战-跑酷熊猫-2 创建熊猫类

简介: 原文:Swift语言实战晋级-第9章 游戏实战-跑酷熊猫-2 创建熊猫类当我们创建好项目文件后我们就可以开始一步一步的按照我们之前列入的清单来编写我们的游戏。现在就让我们来创建一个熊猫这个类Panda.swift。
原文: Swift语言实战晋级-第9章 游戏实战-跑酷熊猫-2 创建熊猫类

当我们创建好项目文件后我们就可以开始一步一步的按照我们之前列入的清单来编写我们的游戏。现在就让我们来创建一个熊猫这个类Panda.swift。我们将采取分解的方式,一步一步的完成Panda.swift的编写

     

首先,我们要导入SpriteKit框架

import SpriteKit

 

接着我们创建一个枚举值,用来记录熊猫的不同状态,分别是跑,跳,二段跳,打滚。

 

enum Status:Int{
case run=1,jump,jump2,roll;
}

 

注意:

在Swift中,当给枚举的首个名称设置整型值时,接下来的名称会自动顺序填充。例如上面的run=1之后,jump就为2,jump2就为3,roll就为4

 

然后我们要让Panda这个类继承自SKSpriteNode

class Panda : SKSpriteNode

 

 

这时候,Panda.swift的完整代码应该是这样的。

import SpriteKit

enum Status:Int{
case run=1,jump,jump2,roll;
}

class Panda : SKSpriteNode{

}

 

完场了以上步骤之后,我们先来实现一个简单地功能,让熊猫显示在场景中。我们只需要在构造器中给Panda的父类也就是SKSpriteNode的构造器传入3个参数。分别是文理(texture)默认颜色(color),默认尺寸(size)。那么我们要做的是先写一个常量用来获取跑这个动作的文理集合

let runAtlas = SKTextureAtlas(named: "run.atlas")

 

接着在构造器中用跑这个动画的第一张文理作为默认的文理。

let texture = runAtlas.textureNamed("panda_run_01")

 

然后用这个纹理的尺寸作为Panda类的默认尺寸

let size = texture.size()

 

再用SKColor.whiteColor()获取白色的色值

 

最后用这些作为参数传给Panda的父类也就是SKSpriteNode的构造器。

super.init(texture:texture,color:SKColor.whiteColor(),size:size)

 

这时候完整的代码应该是这样的

import SpriteKit

enum Status:Int{
    case run=1,jump,jump2,roll;
}

class Panda : SKSpriteNode {
    let runAtlas = SKTextureAtlas(named: "run.atlas")
    
    
    //构造器
    override init(){
    	let texture = runAtlas.textureNamed("panda_run_01")
    	let size = texture.size()
   		super.init(texture:texture,color:SKColor.whiteColor(),size:size)
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

 

当我们写完了上面的代码,我们就要在游戏场景GameScene.swift中将熊猫显示出来。那我们就先要在场景类中声明一个变量,类型是我们刚刚创建的Panda。

lazy var panda = Panda()

 

注意:

用lazy属性可以让变量在第一次使用的时候才实例化,这可以让场景类在创建的时候减少开销。

 

然后在didMoveToView方法中写入如下代码就能够将熊猫显示在屏幕上了。

let skyColor = SKColor(red:113/255,green:197/255,blue:207/255,alpha:1)//场景的背景颜色
self.backgroundColor = skyColor
panda.position = CGPointMake(200, 400)//给熊猫定一个初始位置
self.addChild(panda)//将熊猫显示在场景中

 

按下command+r键,运行一下看看效果

恭喜你,我们勇敢的迈出了第一步。此时我们的场景类中的完整代码应该是这样的:

import SpriteKit

class GameScene: SKScene,ProtocolMainScene {
    lazy var panda = Panda()
override func didMoveToView(view: SKView) {
		//场景的背景颜色
let skyColor = SKColor(red:113/255,green:197/255,blue:207/255,alpha:1)        self.backgroundColor = skyColor
         //给熊猫定一个初始位置
        panda.position = CGPointMake(200, 400) 
		//将熊猫显示在场景中
        self.addChild(panda) 
}

 

我的微信公众号

我写的破书:《Swift语言实战晋级》http://item.jd.com/11641501.html

目录
相关文章
|
4月前
|
存储 安全 Swift
Swift 语言:什么是 Swift 的泛型(Generics)?
Swift 语言:什么是 Swift 的泛型(Generics)?
39 0
|
4月前
|
Swift iOS开发
Swift 语言: 什么是协议(Protocol)?如何实现和使用协议?
Swift 语言: 什么是协议(Protocol)?如何实现和使用协议?
51 2
|
12天前
|
JSON API 数据处理
【Swift开发专栏】Swift中的RESTful API集成实战
【4月更文挑战第30天】本文探讨了在Swift中集成RESTful API的方法,涉及RESTful API的基础概念,如HTTP方法和设计原则,以及Swift的网络请求技术,如`URLSession`、`Alamofire`和`SwiftyJSON`。此外,还强调了数据处理、错误管理和异步操作的重要性。通过合理利用这些工具和策略,开发者能实现高效、稳定的API集成,提升应用性能和用户体验。
|
1天前
|
安全 Swift Android开发
构建移动应用:Swift vs Kotlin —— 两大主流语言的对决
【5月更文挑战第11天】Swift与Kotlin在移动应用开发中各有优势。Swift是iOS开发的首选,以其简洁语法、高性能和类型安全著称;而Kotlin是Android的官方推荐语言,以其与Java的无缝互操作、空安全特性和简洁代码受到青睐。两者在语法简洁性、性能和社区支持上表现优秀,但平台兼容性不同。开发者应根据项目需求和目标平台选择合适的语言。
|
12天前
|
存储 API Swift
【Swift开发专栏】Swift函数与闭包的实战应用
【4月更文挑战第30天】本文介绍了 Swift 中函数和闭包的实战应用。首先,函数的基本使用包括定义、参数与返回值、函数类型以及高级技巧如嵌套函数。接着,讨论了闭包的语法,包括无名函数、作为函数参数、简写形式和尾随闭包。最后,展示了函数和闭包在实战中的应用,如排序过滤集合和处理异步任务的回调。
|
12天前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 语言入门指南
【4月更文挑战第30天】Swift是苹果公司的现代编程语言,以其高效、安全和简洁深受喜爱。它融合了类型推断、闭包和泛型等特性,提供强大的内存管理,支持iOS、macOS等多个平台开发。基础语法包括变量、常量、数据类型、运算符和控制流语句。高级特性涵盖函数、闭包、类与结构体、协议以及泛型。学习Swift能为开发者奠定坚实基础。
|
24天前
|
安全 Swift
Swift 语言:什么是可选类型(Optional)?如何处理可选类型的安全解包?
Swift的可选类型是处理值可能缺失的类,用?表示。它们能表示有值或无值状态。安全解包用`if let`或`guard let`避免崩溃,而强制解包`!`则风险较高,若值为`nil`会触发运行时错误。
9 0
|
4月前
|
存储 Swift
Swift 语言:什么是值类型和引用类型?Swift 中有哪些值类型和引用类型?
Swift 语言:什么是值类型和引用类型?Swift 中有哪些值类型和引用类型?
45 2
|
4月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
106 2
|
3月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
213 2