Skip to content

Instantly share code, notes, and snippets.

@kexoth
Forked from KaffeDiem/tiles.lua
Created July 29, 2024 13:02
Show Gist options
  • Save kexoth/cb442a7df0113a9cb1560a1bae579322 to your computer and use it in GitHub Desktop.
Save kexoth/cb442a7df0113a9cb1560a1bae579322 to your computer and use it in GitHub Desktop.
Isometric Tiles in Lua
-- Drawing the map as isometric tiles
self.tilesHovered = {} -- Reset the tilesHovered table every frame
for i = 1, #self.map do -- Loop trough rows
for j = 1, #self.map[i] do -- Loop through cols in the rows
if self.map[i][j] ~= 0 then -- If there is a tile to draw
local x =
self.x + -- Starting point
(j * ((self.tileWidth / 2) * self.scale)) - -- The width on rows
(i * ((self.tileWidth / 2) * self.scale)) -- The width on cols
local y =
self.y +
(i * ((self.tileHeight / 4) * self.scale)) + -- The height on rows
(j * ((self.tileHeight / 4) * self.scale)) -- The width on cols
-- Take the height map into account
local y = y - self.mapheight[i][j] * 8
-- Draw the tiles
love.graphics.draw(self.tilesheet, self.tiles[self.map[i][j]],
x, y,
0,
self.scale,
self.scale
)
if self.tmx > x and -- Hitbox between mouse and tile
self.tmx < x + self.tileWidth * self.scale and
self.tmy > y + self.tileHeight / 2 and
self.tmy < y + self.tileHeight * self.scale then
-- Add the tile to tiles hovered, if mouse is on top of it
table.insert(self.tilesHovered, {i, j, x, y})
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment