Swift游戏实战-跑酷熊猫 06 创建平台类以及平台工厂类

简介: 原文:Swift游戏实战-跑酷熊猫 06 创建平台类以及平台工厂类   这节内容我们一起学习下随机长度的踩踏平台的原理是怎么样的。 要点: 平台类 我们的平台类继承于SKNode,这样就能被添加进其它节点进而显示在场景中。
原文: Swift游戏实战-跑酷熊猫 06 创建平台类以及平台工厂类

 

这节内容我们一起学习下随机长度的踩踏平台的原理是怎么样的。

要点:

平台类

我们的平台类继承于SKNode,这样就能被添加进其它节点进而显示在场景中。

它有一个方法来创建平台,这个方法接收一个包含SKSpriteNode的数组。将数组里面的对象横向拼接在一起组成一个完整的平台。同时计算出平台的宽度

onCreate(arrSprite:[SKSpriteNode]){
         for platform in arrSprite{
         platform.position.x=self.width
         self.addChild(platform)
         self.width += platform.size.width
  }
}

 

平台工厂类

这个类控制平台类的产生。同时有三个常量记录着平台的纹理,就不需要每次都去加载本地的资源文件。起到优化的作用。

let textureLeft = SKTexture(imageNamed: "platform_l")
let textureMid = SKTexture(imageNamed: "platform_m")
let textureRight = SKTexture(imageNamed: "platform_r")

createPlatform方法是外部调用用于生成平台的方法

 

func createPlatform(midNum:UInt32,x:CGFloat,y:CGFloat){

        let platform = Platform();
        let platform_left = SKSpriteNode(texture: textureLeft)
        platform_left.anchorPoint = CGPointMake(0, 0.9)
        let platform_right = SKSpriteNode(texture: textureRight)
        platform_right.anchorPoint = CGPointMake(0, 0.9)

        var arrPlatform = [SKSpriteNode]()

        arrPlatform.append( platform_left )

       
        platform.position = CGPointMake(x, y)

        for i in 1...midNum{
            let platform_mid = SKSpriteNode(texture: textureMid)
            platform_mid.anchorPoint = CGPointMake(0, 0.9)
            arrPlatform.append(platform_mid)
        }
        arrPlatform.append(platform_right)
        platform.onCreate(arrPlatform)
        self.addChild(platform)

}

 

场景中表现

最后我们在场景中申明一个平台工厂类

@lazy var platformFactory = PlatformFactory()

并创建一个平台

self.addChild(platformFactory)
platformFactory.createPlatform(1, x: 0, y: 200)

 

项目文件地址

http://yun.baidu.com/share/link?shareid=3824235955&uk=541995622

 

Swift游戏实战-跑酷熊猫系列

00 游戏预览

01 创建工程导入素材

02 创建熊猫类

03 熊猫跑动动画

04 熊猫的跳和滚的动作

05 踩踏平台是怎么炼成的

目录
相关文章
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
196 2
|
3月前
|
移动开发 监控 Swift
使用Swift编写电脑监控录屏软件:在macOS平台上实现
在本文中,我们将探讨如何使用Swift编写一款电脑监控录屏软件,实现在macOS平台上的功能。这个软件将能够监控用户的屏幕活动,并将录制的数据自动提交到指定的网站。我们将深入讨论代码示例,以帮助您了解实现过程。
238 0
|
4月前
|
存储 数据处理 Swift
在Swift中,类(class)和结构体(struct)
在Swift中,类(class)和结构体(struct)
30 1
|
6月前
|
存储 安全 Swift
29 Swift如何进行类的初始化和反初始化
Swift如何进行类的初始化和反初始化
34 0
|
Swift
Swift - 如何判断一个对象是否是某个类
Swift - 如何判断一个对象是否是某个类
71 0
|
存储 Java Swift
Swift实用小册12:Class类的继承
和Apple官网或者网上分享的教程类文章不同,我将以实际开发角度讲述Swift语言的一些概念和用法,方便大家更好地学习和掌握Swift语言。 这同时也是对自己学习Swift语言过程的知识整理。
197 0
Swift实用小册12:Class类的继承
|
Swift
Swift实用小册08:Class类的Struct结构体的使用
Swift实用小册08:Class类的Struct结构体的使用
233 0
Swift实用小册08:Class类的Struct结构体的使用
|
存储 安全 编译器
Swift-进阶 02:类、对象、属性
Swift-进阶 02:类、对象、属性
289 0
Swift-进阶 02:类、对象、属性
|
存储 Swift iOS开发
Swift讲解专题十——类与结构体
Swift讲解专题十——类与结构体
83 0
|
机器学习/深度学习 人工智能 文字识别
《MNN For Swift》移动端机器学习实战课程发布!
5期系列课程教学,最新实践分享!
841 0
《MNN For Swift》移动端机器学习实战课程发布!