chore:extract position handling in both system
This commit is contained in:
parent
7cc0ac27f8
commit
9dd96e2a86
1 changed files with 12 additions and 8 deletions
|
@ -7,17 +7,13 @@ function Parent:new(world, type, x, y, z, w, h, d, isSolid)
|
|||
end
|
||||
|
||||
function Parent:draw()
|
||||
local drawx, drawy, drawz = self.x, self.y, self.z
|
||||
if (self.world.maptype == "shoot") then
|
||||
drawx = drawx + math.floor(drawy/2)
|
||||
end
|
||||
self:drawStart()
|
||||
if (self.box ~= nil) then
|
||||
self.box:draw(drawx, drawy, drawz)
|
||||
self.box:draw(math.floor(self.x), math.floor(self.y), math.floor(self.z))
|
||||
else
|
||||
local x, y = math.floor(drawx), math.floor(drawy - drawz - self.d + (self.h/2))
|
||||
if (math.floor(drawz) < -2) and (self.world.maptype == "shoot") then
|
||||
core.screen:setScissor(0, 0, 424, 58+drawy/2)
|
||||
local x, y, z = self:computeDrawingPosition()
|
||||
if (math.floor(z) < -2) and (self.world.maptype == "shoot") then
|
||||
core.screen:setScissor(0, 0, 424, 58+self.y/2)
|
||||
self:drawSprite(x, y)
|
||||
core.screen:resetScissor()
|
||||
else
|
||||
|
@ -27,6 +23,14 @@ function Parent:draw()
|
|||
self:drawEnd()
|
||||
end
|
||||
|
||||
function Parent:computeDrawingPosition()
|
||||
local drawx, drawy, drawz = self.x, self.y, self.z
|
||||
if (self.world.maptype == "shoot") then
|
||||
drawx = drawx + math.floor(drawy/2)
|
||||
end
|
||||
return math.floor(drawx), math.floor(drawy - drawz - self.d + (self.h/2)), math.floor(drawz)
|
||||
end
|
||||
|
||||
function Parent:drawShadow(x, y)
|
||||
local x = x or 0
|
||||
local y = y or 0
|
||||
|
|
Loading…
Reference in a new issue