-
-
Save tazdij/33befa226afa0fe2a05af5e88be67ebd to your computer and use it in GitHub Desktop.
Isometric Tiles in Lua
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- 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