love2d 代码库(二):方块碰撞检测


Block1={}
Block1.x=100
Block1.y=100
Block1.width =100
Block1.height=100
Block1.speed = 500
Block2 = {}
Block2.x = 300
Block2.y = 100
Block2.width = 100
Block2.height = 100
Block2.speed = 500
-- 碰撞检测
function colide_check(block1,block2)

    block1.right = block1.x + block1.width
    block1.left = block1.x
    block1.top = block1.y
    block1.bottom = block1.y + block1.height


    block2.right = block2.x + block2.width
    block2.left = block2.x
    block2.top = block2.y
    block2.bottom = block2.y + block2.height
    if block1.right>block2.left and block1.bottom>block2.top and  block1.top<block2.bottom and block1.left<block2.right then
        return true
    else
        return false
    end
 end
function love.load()

    block1 = Block1
    block2 = Block2
    
end

function love.update(dt)
    if love.keyboard.isDown("right") then
        block1.x = block1.x+block1.speed*dt
    elseif love.keyboard.isDown("left") then
        block1.x = block1.x - block1.speed * dt
    elseif love.keyboard.isDown("up") then
        block1.y = block1.y - block1.speed * dt
    elseif love.keyboard.isDown("down") then
        block1.y = block1.y + block1.speed * dt
    end
    
end


function love.draw()
    if colide_check(block1,block2) then
        mode="fill"
    else
        mode="line"
    end
    love.graphics.rectangle(mode, block1.x, block1.y, block1.width, block1.height)
    love.graphics.rectangle(mode, block2.x, block2.y, block2.width, block2.height)
end

效果:请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值