diff options
Diffstat (limited to 'collisions.lua')
| -rw-r--r-- | collisions.lua | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/collisions.lua b/collisions.lua index feb138b..4b9c430 100644 --- a/collisions.lua +++ b/collisions.lua @@ -1,30 +1,30 @@ sw, sh = 8, 8 function is_colliding(a, b) - ax1, bx1 = a.position.x, b.position.x - ax2, bx2 = ax1 + sw, bx1 + sw - ay1, by1 = a.position.y, b.position.y - ay2, by2 = ay1 + sh, by1 + sh - return (ax1 < bx2 and ax2 > bx1 - and ay1 < by2 and ay2 > by1) + ax1, bx1 = a.position.x, b.position.x + ax2, bx2 = ax1 + sw, bx1 + sw + ay1, by1 = a.position.y, b.position.y + ay2, by2 = ay1 + sh, by1 + sh + return (ax1 < bx2 and ax2 > bx1 + and ay1 < by2 and ay2 > by1) end function handle_collision(a, b) --- if b.typ == types.enemy then --- --print(b.id,100,100) --- end + if b.entity_type == Entities.Enemy then + print(b.id, b.id * 10, b.id * 10) + end end function run_collisions() - collidable = filter(World, function (e) return e.collision end) - for _ai, a in ipairs(collidable) do - for _bi, b in ipairs(collidable) do - if a.id == b.id then - goto continue - end - if is_colliding(a, b) then - handle_collision(a, b) - end - ::continue:: + collidable = filter(_World, function(e) return e.collision end) + for _ai, a in pairs(collidable) do + for _bi, b in pairs(collidable) do + if a.id == b.id then + goto continue + end + if is_colliding(a, b) then + handle_collision(a, b) + end + ::continue:: + end end - end -end +end
\ No newline at end of file |
