fix(baseworld): draw all map layer instead of using map:draw()
It allow us to use the exact same transform for map and actors
This commit is contained in:
parent
f48de0e9bd
commit
c7e2f2daca
1 changed files with 6 additions and 15 deletions
|
@ -432,8 +432,8 @@ function BaseWorld:draw(dt)
|
|||
else
|
||||
for i=1, camNumber do
|
||||
self.cameras:setScissor(i)
|
||||
self:drawMap(i)
|
||||
self.cameras:attachView(i)
|
||||
self:drawMap(i)
|
||||
self:drawActors(i)
|
||||
self.cameras:detachView(i)
|
||||
self.cameras:drawHUD(i)
|
||||
|
@ -451,21 +451,12 @@ function BaseWorld:drawActors(id)
|
|||
end
|
||||
|
||||
function BaseWorld:drawMap(id)
|
||||
local tx, ty, scale = 0, 0, 1
|
||||
if id ~= nil then
|
||||
-- Du à la manière dont fonctionne STI, on est obligé de récupérer les info
|
||||
-- de position de camera pour afficher la carte par rapport à ces infos
|
||||
tx, ty = self.cameras:getInternalCamCoordinate(id)
|
||||
scale = self.cameras:getViewScale(id) or 2
|
||||
local vx, vy = self.cameras:getOnScreenViewRelativePosition(id)
|
||||
tx = math.floor(tx - math.abs(vx))
|
||||
ty = math.floor(ty - math.abs(vy))
|
||||
|
||||
local w, h = core.screen:getDimensions()
|
||||
end
|
||||
|
||||
if self.haveMap then
|
||||
self.map:draw(-tx, -ty, scale, scale)
|
||||
for _, layer in ipairs(self.map.layers) do
|
||||
if layer.visible and layer.opacity > 0 then
|
||||
self.map:drawLayer(layer)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue