在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
物理模拟是一个奇妙的事情,以此著名的游戏有愤怒的小鸟。我们在这节将会一起来了解如何设置重力,设置物理包围体,碰撞的检测。 要点:设置物理检测的代理: 让主场景遵循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 //摩擦力设为0 self.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 视差滚动背景 |
请发表评论