Compare commits
2 Commits
e1bfd4f7f5
...
486f242544
Author | SHA1 | Date |
---|---|---|
|
486f242544 | |
|
bb53c2787b |
|
@ -4,19 +4,15 @@ Camera = {
|
||||||
height = 0
|
height = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function Camera:positionCenterAt(x,y,cx,cy)
|
function Camera:ConfineToLevel()
|
||||||
|
self.pos.x = math.max(0,math.min(self.pos.x,LevelData.Width-self.width/game.scale))
|
||||||
|
self.pos.y = math.max(0,math.min(self.pos.y,LevelData.Height-self.height/game.scale))
|
||||||
|
end
|
||||||
|
|
||||||
|
function Camera:positionCenterAt(x,y)
|
||||||
self.pos.x = x-self.width/game.scale/2
|
self.pos.x = x-self.width/game.scale/2
|
||||||
self.pos.y = y-self.height/game.scale/2
|
self.pos.y = y-self.height/game.scale/2
|
||||||
if not (cx == nil or cy == nil) then
|
self:ConfineToLevel()
|
||||||
cx = cx - self.width
|
|
||||||
cy = cy - self.height
|
|
||||||
if self.pos.x > cx then self.pos.x = cx end
|
|
||||||
if self.pos.y > cy then self.pos.y = cy end
|
|
||||||
if self.pos.x < 0 then self.pos.x = 0 end
|
|
||||||
if self.pos.y < 0 then self.pos.y = 0 end
|
|
||||||
end
|
|
||||||
self.pos.x = math.floor(self.pos.x)
|
|
||||||
self.pos.y = math.floor(self.pos.y)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function Camera:positionAt(x,y)
|
function Camera:positionAt(x,y)
|
||||||
|
|
|
@ -90,8 +90,8 @@ end
|
||||||
function EditorDoEdit()
|
function EditorDoEdit()
|
||||||
local mouse_x = love.mouse.getX()
|
local mouse_x = love.mouse.getX()
|
||||||
local mouse_y = love.mouse.getY()
|
local mouse_y = love.mouse.getY()
|
||||||
local horizontal = 1 + math.floor(((mouse_x/game.scale) / tileProperties.width) + (Camera.pos.x / tileProperties.width))
|
local horizontal = 1+math.floor(((mouse_x/game.scale) / tileProperties.width) + (Camera.pos.x / tileProperties.width))
|
||||||
local vertical = 1 + math.floor(((mouse_y/game.scale) / tileProperties.height) + (Camera.pos.y / tileProperties.height))
|
local vertical = 1+math.floor(((mouse_y/game.scale) / tileProperties.height) + (Camera.pos.y / tileProperties.height))
|
||||||
local expand_h = 0
|
local expand_h = 0
|
||||||
local expand_v = 0
|
local expand_v = 0
|
||||||
local LevelWidth = LevelGetTileWidth()
|
local LevelWidth = LevelGetTileWidth()
|
||||||
|
@ -127,23 +127,10 @@ function EditorDoEdit()
|
||||||
|
|
||||||
elseif Keybind:HasPressed(Keybind.generic.lshift) then
|
elseif Keybind:HasPressed(Keybind.generic.lshift) then
|
||||||
LevelExpandCanvas(math.sign(expand_h),math.sign(expand_v))
|
LevelExpandCanvas(math.sign(expand_h),math.sign(expand_v))
|
||||||
|
LevelReloadTiles()
|
||||||
if expand_h < 0 then
|
|
||||||
Camera.pos.x = Camera.pos.x - math.sign(expand_h)*tileProperties.scale*tileProperties.width
|
|
||||||
end
|
|
||||||
if expand_v < 0 then
|
|
||||||
Camera.pos.y = Camera.pos.y - math.sign(expand_v)*tileProperties.scale*tileProperties.height
|
|
||||||
end
|
|
||||||
|
|
||||||
elseif Keybind:HasPressed(Keybind.generic.lctrl) then
|
elseif Keybind:HasPressed(Keybind.generic.lctrl) then
|
||||||
LevelReduceCanvas(math.sign(expand_h),math.sign(expand_v))
|
LevelReduceCanvas(math.sign(expand_h),math.sign(expand_v))
|
||||||
|
LevelReloadTiles()
|
||||||
if expand_h < 0 then
|
|
||||||
Camera.pos.x = Camera.pos.x - math.sign(expand_h)*tileProperties.scale*tileProperties.width
|
|
||||||
end
|
|
||||||
if expand_v < 0 then
|
|
||||||
Camera.pos.y = Camera.pos.y - math.sign(expand_v)*tileProperties.scale*tileProperties.height
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -151,14 +138,18 @@ end
|
||||||
function DrawSelectingPaletteTile()
|
function DrawSelectingPaletteTile()
|
||||||
if selecting_tile ~= nil and selecting_tile ~= 0 then
|
if selecting_tile ~= nil and selecting_tile ~= 0 then
|
||||||
|
|
||||||
local mouse_x = tileProperties.width * math.floor((love.mouse.getX()/game.scale) / tileProperties.width) - Camera.pos.x % tileProperties.width
|
local mouse_x = love.mouse.getX()
|
||||||
local mouse_y = tileProperties.height * math.floor((love.mouse.getY()/game.scale) / tileProperties.height) - Camera.pos.y % tileProperties.height
|
local mouse_y = love.mouse.getY()
|
||||||
|
local horizontal = math.floor(((mouse_x/game.scale) / tileProperties.width) + (Camera.pos.x / tileProperties.width))
|
||||||
|
local vertical = math.floor(((mouse_y/game.scale) / tileProperties.height) + (Camera.pos.y / tileProperties.height))
|
||||||
|
local draw_x = tileProperties.width * horizontal - Camera.pos.x
|
||||||
|
local draw_y = tileProperties.height * vertical - Camera.pos.y
|
||||||
|
|
||||||
love.graphics.draw(
|
love.graphics.draw(
|
||||||
LevelData.tileset,
|
LevelData.tileset,
|
||||||
TileIndex[selecting_tile],
|
TileIndex[selecting_tile],
|
||||||
mouse_x,
|
draw_x,
|
||||||
mouse_y
|
draw_y
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -21,6 +21,8 @@ end
|
||||||
|
|
||||||
|
|
||||||
function LevelExpandCanvas(horizontal,vertical)
|
function LevelExpandCanvas(horizontal,vertical)
|
||||||
|
local horizontal = horizontal or 0
|
||||||
|
local vertical = vertical or 0
|
||||||
local h = LevelGetTileWidth()
|
local h = LevelGetTileWidth()
|
||||||
local v = LevelGetTileHeight()
|
local v = LevelGetTileHeight()
|
||||||
|
|
||||||
|
@ -51,7 +53,7 @@ function LevelExpandCanvas(horizontal,vertical)
|
||||||
-- get data from old canvas to new canvas
|
-- get data from old canvas to new canvas
|
||||||
for i = 1, #LevelTiles do
|
for i = 1, #LevelTiles do
|
||||||
for j = 1, #LevelTiles[i] do
|
for j = 1, #LevelTiles[i] do
|
||||||
ExpandedLevel[i+expand_v][j+expand_h] = InstanceTile(LevelTiles[i][j])
|
ExpandedLevel[i+expand_v][j+expand_h] = InstanceTile(LevelTiles[i][j].id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -61,6 +63,8 @@ end
|
||||||
|
|
||||||
|
|
||||||
function LevelReduceCanvas(horizontal,vertical)
|
function LevelReduceCanvas(horizontal,vertical)
|
||||||
|
local horizontal = horizontal or 0
|
||||||
|
local vertical = vertical or 0
|
||||||
local h = LevelGetTileWidth()
|
local h = LevelGetTileWidth()
|
||||||
local v = LevelGetTileHeight()
|
local v = LevelGetTileHeight()
|
||||||
|
|
||||||
|
@ -91,12 +95,14 @@ function LevelReduceCanvas(horizontal,vertical)
|
||||||
-- get data from old canvas to new canvas
|
-- get data from old canvas to new canvas
|
||||||
for i = 1, #ExpandedLevel do
|
for i = 1, #ExpandedLevel do
|
||||||
for j = 1, #ExpandedLevel[i] do
|
for j = 1, #ExpandedLevel[i] do
|
||||||
ExpandedLevel[i][j] = InstanceTile(LevelTiles[i+expand_v][j+expand_h])
|
ExpandedLevel[i][j] = InstanceTile(LevelTiles[i+expand_v][j+expand_h].id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- use new canvas
|
-- use new canvas
|
||||||
LevelTiles = ExpandedLevel
|
LevelTiles = ExpandedLevel
|
||||||
|
|
||||||
|
LevelExpandCanvas()
|
||||||
end
|
end
|
||||||
|
|
||||||
function LevelGetTileData()
|
function LevelGetTileData()
|
||||||
|
|
Loading…
Reference in New Issue