Swift遊戲實戰-跑酷熊貓 11 歡迎進入物理世界

來源:互聯網
上載者:User

標籤: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 視差滾動背景
相關文章

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.