物理引擎

  1. --创建带物理世界的scene
  2. local physicScene = display.newPhysicsScene("physicsecene")
  3. --用来获取场景绑定的物理世界对象
  4. physicScene:getPhysicsWorld()
  5. --改变重力值
  6. physicScene:getPhysicsWorld():setGravity(cc.p(0,-9.8*10))
  7. -- 开启调试模式
  8. scene:getPhysicsWorld():setDebugDrawMask(cc.PhysicsWorld.DEBUGDRAW_ALL)
  9. --创建物理边界
  10. local size = display.size
  11. local body = cc.PhysicsBody:create(size,cc.PHYSICSBODY_MATERIAL_DEFAULT,3)
  12. local edgeNode = display.newNode()
  13. edgeNode:setPosition(size.width/2,size.height/2)
  14. edgeNode:setPhysicsBody(body)
  15. layer:addChild(edgeNode)
  16. --[[
  17. 参数 1 矩形区域大小 这里为屏幕大小
  18. 2 可选参数 材质 默认为PHYSICSBODY_MATERIAL_DEFAULT
  19. 3 边界宽度,可选参数,默认为1
  20. ]]
  21. --创建受重力作用的sprite
  22. function MiainScene:addSprite(x,y)
  23. local oneSprite = display.newSprite("1.png")
  24. local oneBody = cc.PhysicsBody:createBox(oneSprite:getContentSize(),cc.PHYSICSBODY_MATERIAL_DEFAULT,cc.p(0,0))
  25. --[[
  26. 参数1 cc.size类型 表示矩形长宽
  27. 2 cc.PhysicsMaterial 类型 可选参数
  28. 3 cc.p 类型 表示body 与中心点的偏移量 可选参数 默认为cc.cp(0,0)
  29. ]]
  30. --手动创建Sprite材质
  31. cc.PhysicsMaterial(density,restiution,friction)
  32. --[[
  33. density 密度
  34. restiution 反弹力
  35. friction 摩擦力
  36. ]]
  37. oneBody:applyImpilse(cc.p(100,500))
  38. oneSprite:setPhysicsBody(oneBody)
  39. oneSprite:setPosition(x,y)
  40. self.addChild(oneSprite)
  41. end
  42. --创建圆形body
  43. cc.PhysicsBody:createCircle(半径,cc.PhysicsMaterial 类型,cc.p 类型)





posted @ 2017-01-04 14:41  feizuzu  阅读(403)  评论(0编辑  收藏  举报