標籤: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 踩踏平台是怎麼煉成的