1.菜单按钮
local item = cc.ui.cc.ui.UIPushButton.new({normal ="#start1.png", pressed ="#start2.png"})
:onButtonClicked(function()
display.replaceScene(require("app.scenes.MainScene").new())
end)
2.创建物理场景
//创建物理场景类
locak phyScene = class("phyScene",
function()
return display.newPhysicsScene("phyScene"))
functon mfunction phyScene:ctor()
//设置重力参数
self.workd = self:getPhysicsWorld()
self.world:setGravity(cc.p(0, GRAVITY)) // x坐标的重力 y坐标的重力
//创建盒子
local box = display.newNode()
box:setPhysicsBode(cc.PhysicsBody:createEdgeBox(宽度, 高度))
self:addChild(box)
//创建刚体
local coinSprite = display.newSprite("#Coin.png")
self:addChild(coinSprite)
local coinBody = cc.PhysicsBody:createCircle(COIN_RADIUS,
cc.PhysicsMaterial(COIN_RADIUS, COIN_FRICTION, COIN_ELASTICITY))
coinBody:setMass(COIN_MASS) // 设置质量
coinSprite:setPhysicsBody(coinBody)
coinSprite:setPosition(x, y)end
结构体PhysicsMaterial成员有:density(密度)、friction(磨擦系数)和restitution(弹性系数)。密度可以用来计算物体的质量,密度可以为零或者为正数。摩擦系数经常会设置在0.0~1.0之间,0.0表示没有摩擦力,1.0会产生强摩擦。弹性系数的值通常设置到0.0~1.0之间,0.0表示物体不会弹起,1.0表示物体会完全反弹,即称为弹性碰撞。
3.添加物理监听
local listener = cc.EventListenerPhysicsContact:create()
listener:registerScriptHandler(onContactBegin, cc.Handler.EVENT_PHYSICS_CONTACT_BEGIN)
给刚体设置掩码
coinBody:setCategoryBitmask(1)
coinBody:setContactTestBitmask(1)
掩码的作用http://www.tuicool.com/articles/nAZbuy
4.显示物理边界线
self:getPhysicsWorld():setDebugDrawMask(cc.PhysicsWorld.DEBUGDRAW_ALL)