• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

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

要点:

平台类

我们的平台类继承于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 踩踏平台是怎么炼成的


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift2.x学习笔记(一)发布时间:2022-07-13
下一篇:
Swift不等于nil发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap