-- Collison use HC -- -- vrld/HC: General purpose collision detection library for the use with LÖVE. -- https://github.com/vrld/HC Polygon = require "HC.polygon" function love.load() polys = { {20, 80, 80, 20, 120, 140}, {140, 80, 200, 20, 260, 100, 200, 180}, {340, 20, 400, 60, 380, 160, 320, 160, 280, 80}, {460, 60, 520, 20, 600, 60, 600, 160, 520, 180, 460, 140}, {140, 340, 260, 340, 280, 420, 100, 440, 20, 360, 40, 200, 100, 200}, {500, 320, 460, 220, 380, 240, 440, 340, 300, 360, 340, 440, 500, 420, 520, 460, 620, 420, 600, 320} } hits = {} p = {} for i = 1, #polys do hits[i] = false p[#p + 1] = Polygon(unpack(polys[i])) end end function love.update(dt) local mx, my mx, my = love.mouse.getPosition() for i = 1, #p do hits[i] = p[i]:contains(mx, my) end end function love.draw() -- clear canvas love.graphics.clear(0, 0, 0, 1) -- draw polygon for i = 1, #p do if hits[i] then love.graphics.setColor(1, 0, 0, 1) else love.graphics.setColor(0, 1, 0, 1) end love.graphics.polygon("line", p[i]:unpack()) end -- draw text love.graphics.setColor(1, 1, 1, 1) love.graphics.print("ESC to exit.", 8, 8) end function love.keypressed(key, scancode, isrepeat) if key == "escape" then love.event.quit() end end