summaryrefslogtreecommitdiff
path: root/utils/utils.lua
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-02-20 16:39:45 +0800
committerEltrac <hi@guhub.cn>2025-02-20 16:39:45 +0800
commit6fac71363024403c8bc5e92d286153dbe48b389a (patch)
treea469c152cdfbb882b323dacd1447c7bcd0bc0124 /utils/utils.lua
parent13a208ec28b21279a20438800f5b0acac43eaf1b (diff)
refactor: use Body object
- Body defines an object's size and shape - Body provides a universal function to detect collision
Diffstat (limited to 'utils/utils.lua')
-rw-r--r--utils/utils.lua29
1 files changed, 0 insertions, 29 deletions
diff --git a/utils/utils.lua b/utils/utils.lua
index 796a8a5..dbdb5bb 100644
--- a/utils/utils.lua
+++ b/utils/utils.lua
@@ -1,34 +1,5 @@
utils = {}
--- deal with collision
-
-function utils.circlesCollide(x1, y1, r1, x2, y2, r2)
- local dx = x2 - x1
- local dy = y2 - y1
- local distanceSquared = dx * dx + dy * dy -- 避免开方,提高性能
- local radiusSum = r1 + r2
- return distanceSquared <= radiusSum * radiusSum
-end
-
-function utils.playerCollideWith(x, y, r)
- return utils.circlesCollide(G.player.x, G.player.y, G.player.r, x, y, r)
-end
-
-function utils.circleRectCollide(cx, cy, r, rx, ry, rw, rh)
- local nearestX = math.max(rx, math.min(cx, rx + rw))
- local nearestY = math.max(ry, math.min(cy, ry + rh))
-
- local dx = cx - nearestX
- local dy = cy - nearestY
- local distanceSquared = dx * dx + dy * dy
-
- return distanceSquared <= r * r
-end
-
-function utils.playerCollideWithRect(x, y, w, h)
- return utils.circleRectCollide(G.player.x, G.player.y, G.player.r, x, y, w, h)
-end
-
-- deal with obstacles
-- detect if object hit obstacles at a certain direction