Swift遊戲實戰-跑酷熊貓 06建立平台類以及平台工廠類

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   strong   

 

這節內容我們一起學習下隨機長度的踩踏平台的原理是怎麼樣的。

要點:

平台類

我們的平台類繼承於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 踩踏平台是怎麼煉成的
相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.