micro-optimize bullet details

Shots that miss are most likely to not be there yet, so check Y-top first.

If I assume shots will never be larger than 16 pixels per side, there is
no reason to check the ship's genuine width and height.
This commit is contained in:
2025-06-28 22:35:36 -07:00
parent 2d5d392df0
commit 2cd7c64dd9

View File

@ -775,7 +775,7 @@ end
function bullet_base:move() function bullet_base:move()
local x,y = self.x + self.dx, self.y+self.dy local x,y = self.x + self.dx, self.y+self.dy
self.x,self.y=x,y self.x,self.y=x,y
return (y<=128) and (y >= -(self.height<<3)) and (x <= 128) and (x >= -(self.width<<3)) return (y<=128) and (y >= -16) and (x <= 128) and (x >= -16)
end end
function bullet_base:draw() function bullet_base:draw()
@ -1352,10 +1352,10 @@ end
-- box: x1, y1, x2, y2 -- box: x1, y1, x2, y2
function collides(b1, b2) function collides(b1, b2)
return return
b1.x1<=b2.x2 b1.y1<=b2.y2
and b1.y1<=b2.y2
and b1.x2>=b2.x1
and b1.y2>=b2.y1 and b1.y2>=b2.y1
and b1.x1<=b2.x2
and b1.x2>=b2.x1
end end
collider = mknew{ collider = mknew{