-
-
Save kexoth/cb442a7df0113a9cb1560a1bae579322 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