首页 > 代码库 > Swift游戏实战-跑酷熊猫 11 欢迎进入物理世界
Swift游戏实战-跑酷熊猫 11 欢迎进入物理世界
物理模拟是一个奇妙的事情,以此著名的游戏有愤怒的小鸟。我们在这节将会一起来了解如何设置重力,设置物理包围体,碰撞的检测。
要点:
设置物理检测的代理:
让主场景遵循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 视差滚动背景
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。