quick-cocos2d-x lua中碰撞检测的实现

--碰撞检测
function game:jiance()
    --遍历敌人数组
    local saa=table.getn(enemyarray)
        print(saa)
        if saa==0  then 
            local  GameSuccesScene=GameSuccesScene.new()
            display.replaceScene(GameSuccesScene)
        end
        if  xiaobing  then 
            for k,v  in pairs(enemyarray) do
                 --在这里让他和小兵进行碰撞
                local hPosX=v:getPositionX()
                local hPosY=v:getPositionY()
                local posX=xiaobing:getPositionX()
                local posY=xiaobing:getPositionY()
                if  math.abs(hPosX-posX)<xiaobing:getContentSize().width and math.abs(hPosY-posY) < 
                    xiaobing:getContentSize().height then
                    xiaobing:removeFromParentAndCleanup(true)
                    xiaobing=nil
                    local  GameOverScene=GameOverScene.new()
                    CCDirector:sharedDirector():replaceScene(GameOverScene)
                end
             --遍历子弹数组
                for s,t  in  pairs(Bulletarray)  do
                    local posX=t:getPositionX()
                    local posY=t:getPositionY()
                    if  math.abs(hPosX-posX)<t:getContentSize().width and math.abs(hPosY-posY) < t:getContentSize().height then
                        v:removeFromParentAndCleanup(true)
                        t:removeFromParentAndCleanup(true)
                        table.remove(enemyarray,k)
                        table.remove(Bulletarray,s)
                    end
                end
            end
        end
end
--碰撞检测的使用
function game:isCollsion(  )
local hPosX=Enemy:getPositionX()
local hPosY=Enemy:getPositionY()
  local posX=bullet:getPositionX()
    local posY=bullet:getPositionY()
    local sosX=player:getPositionX()
    local sosY=player:getPositionY()
    if math.abs(hPosX-posX)<bullet:getContentSize().width and math.abs(hPosY-posY) < 
bullet:getContentSize().height then
Enemy:removeFromParent()
bullet:removeFromParent()
end
if math.abs(hPosX-sosX)<player:getContentSize().width and math.abs(hPosY-sosY) < 
player:getContentSize().height then
Enemy:removeFromParent()
player:removeFromParent()
CCDirector:sharedDirector():unscheduleAll()
local gameover=gameScene:new()
        display.replaceScene(gameover)
-----CCDirector:sharedDirector():replaceScene(gameover)
end
end
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值