zoukankan      html  css  js  c++  java
  • 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 踩踏平台是怎么炼成的

  • 相关阅读:
    2012年浙大:Hello World for U
    noip2011普及组:统计单词
    noip2013提高组:积木大赛
    蓝桥杯:错误票据
    C#知识点
    疑问
    C#多态
    SQLServer导入Excel,复杂操作
    SQLServer数据库基本操作,导入Excel数据
    C#基础学习
  • 原文地址:https://www.cnblogs.com/sandal1980/p/3859904.html
Copyright © 2011-2022 走看看