標籤:style blog http color os io strong 檔案
物理類比是一個奇妙的事情,以此著名的遊戲有憤怒的小鳥。我們在這節將會一起來瞭解如何設定重力,設定物理包圍體,碰撞的檢測。
要點:
設定物理檢測的代理:
讓主情境遵循SKPhysicsContactDelegate協議。通過didBeginContact方法來響應物體之間是否碰撞。自然,我們要把物理系統的代理設為主情境。
self.physicsWorld.contactDelegate = self
設定重力:
self.physicsWorld.gravity = CGVectorMake(0, -5)
因為我們需要對熊貓是否掉到情境之外進行檢測,所以設定情境的包圍體為“邊緣”類型。
self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
設定一個標識符:
self.physicsBody.categoryBitMask = BitMaskType.scene
同樣,設定完情境類,我們也要對熊貓類進行改造,因為碰撞畢竟是兩個好基友之間的事情。
//設定熊貓的包圍體為矩形self.physicsBody = SKPhysicsBody(rectangleOfSize:texture.size()) //產生物理效應self.physicsBody.dynamic = true//不做角度變化self.physicsBody.allowsRotation = false //摩擦力設為0self.physicsBody.restitution = 0//設定標識符self.physicsBody.categoryBitMask = BitMaskType.panda//與情境進行碰撞檢測self.physicsBody.contactTestBitMask = BitMaskType.scene
最後我們要在didBeginContact中寫碰撞響應的代碼
func didBeginContact(contact: SKPhysicsContact!) { //如果熊貓和情境邊緣碰撞 if (contact.bodyA.categoryBitMask|contact.bodyB.categoryBitMask) == (BitMaskType.scene | BitMaskType.panda) { println("遊戲結束") }}
專案檔地址
http://yun.baidu.com/share/link?shareid=3824235955&uk=541995622
Swift遊戲實戰-跑酷熊貓系列00 遊戲預覽01 建立工程匯入素材02 建立熊貓類03 熊貓跑動動畫04 熊貓的跳和滾的動作05 踩踏平台是怎麼煉成的06 建立平台類以及平台工廠類07 平台的移動08 產生源源不斷的移動平台09 移除情境之外的平台10 視差滾動背景