--创建带物理世界的scene
local physicScene = display.newPhysicsScene("physicsecene")
--用来获取场景绑定的物理世界对象
physicScene:getPhysicsWorld()
--改变重力值
physicScene:getPhysicsWorld():setGravity(cc.p(0,-9.8*10))
-- 开启调试模式
scene:getPhysicsWorld():setDebugDrawMask(cc.PhysicsWorld.DEBUGDRAW_ALL)
--创建物理边界
local size = display.size
local body = cc.PhysicsBody:create(size,cc.PHYSICSBODY_MATERIAL_DEFAULT,3)
local edgeNode = display.newNode()
edgeNode:setPosition(size.width/2,size.height/2)
edgeNode:setPhysicsBody(body)
layer:addChild(edgeNode)
--[[
参数 1 矩形区域大小 这里为屏幕大小
2 可选参数 材质 默认为PHYSICSBODY_MATERIAL_DEFAULT
3 边界宽度,可选参数,默认为1
]]
--创建受重力作用的sprite
function MiainScene:addSprite(x,y)
local oneSprite = display.newSprite("1.png")
local oneBody = cc.PhysicsBody:createBox(oneSprite:getContentSize(),cc.PHYSICSBODY_MATERIAL_DEFAULT,cc.p(0,0))
--[[
参数1 cc.size类型 表示矩形长宽
2 cc.PhysicsMaterial 类型 可选参数
3 cc.p 类型 表示body 与中心点的偏移量 可选参数 默认为cc.cp(0,0)
]]
--手动创建Sprite材质
cc.PhysicsMaterial(density,restiution,friction)
--[[
density 密度
restiution 反弹力
friction 摩擦力
]]
oneBody:applyImpilse(cc.p(100,500))
oneSprite:setPhysicsBody(oneBody)
oneSprite:setPosition(x,y)
self.addChild(oneSprite)
end
--创建圆形body
cc.PhysicsBody:createCircle(半径,cc.PhysicsMaterial 类型,cc.p 类型)