diff --git a/bundle/main.lua b/bundle/main.lua index 170d1bb..53aec0b 100644 --- a/bundle/main.lua +++ b/bundle/main.lua @@ -47,6 +47,7 @@ direction_keys['space'] = directions.inplace local control_keys = {quit = 'q', restart = 'r', configure = 'c', autoexplore = 'a'} local win_image = nil +local win_is_raster = false -- ------------------------------------------------------------------ -- Cavern generation @@ -971,25 +972,64 @@ function drawHP() local x = (i - 1) * scale + x_offset local y = y_offset + love.graphics.setColor(1, 1, 1) love.graphics.draw(heart_sprite, x, y, 0, scale/16, scale/16) end end function drawWin() - local img_width, img_height = win_image:getDimensions() + if win_is_raster then + local img_width, img_height = win_image:getDimensions() - local screen_width = love.graphics.getWidth() - local screen_height = love.graphics.getHeight() + local screen_width = love.graphics.getWidth() + local screen_height = love.graphics.getHeight() - local width_scale = screen_width / img_width - local height_scale = screen_height / img_height - local scale = math.min(width_scale, height_scale) + local width_scale = screen_width / img_width + local height_scale = screen_height / img_height + local scale = math.min(width_scale, height_scale) - local x_offset = (screen_width - img_width * scale) / 2 - local y_offset = (screen_height - img_height * scale) / 2 + local x_offset = (screen_width - img_width * scale) / 2 + local y_offset = (screen_height - img_height * scale) / 2 - love.graphics.setColor(1, 1, 1) - love.graphics.draw(win_image, x_offset, y_offset, 0, scale, scale) + love.graphics.setColor(1, 1, 1) + love.graphics.draw(win_image, x_offset, y_offset, 0, scale, scale) + else + local width = 20 + local height = 20 + + local screen_width = love.graphics.getWidth() + local screen_height = love.graphics.getHeight() + + local width_scale = screen_width / width + local height_scale = screen_height / height + local scale = math.min(width_scale, height_scale) + + local x_offset = (screen_width - width * scale) / 2 + local y_offset = (screen_height - height * scale) / 2 + + local vertices = {10, 7, 6, 8, 5, 20, 15, 20, 14, 8} + + local transformed_vertices = {} + for i = 1, #vertices, 2 do + local x = vertices[i] * scale + x_offset + local y = vertices[i + 1] * scale + y_offset + + transformed_vertices[i] = x + transformed_vertices[i + 1] = y + end + + love.graphics.setColor(0, 0, 1) + love.graphics.polygon('fill', transformed_vertices) + + love.graphics.setColor(0.6, 0.3, 0.2) + love.graphics.circle('fill', 10 * scale + x_offset, 5 * scale + y_offset, 3 * scale) + + love.graphics.setColor(0.5, 0.2, 0.1) + love.graphics.rectangle('fill', x_offset, 15 * scale + y_offset, 20 * scale, 10 * scale) + + love.graphics.setColor(0, 1, 0) + love.graphics.circle('fill', 10 * scale + x_offset, 16 * scale + y_offset, 2 * scale) + end end function drawLoss() @@ -1077,7 +1117,9 @@ function love.load() newGame() - win_image = love.graphics.newImage("win_image.png") + if win_is_raster then + win_image = love.graphics.newImage("win_image.png") + end player_sprite = love.graphics.newImage("sprite.png") player_sprite_crit = love.graphics.newImage("sprite_crit.png") diff --git a/bundle/win_image.png b/bundle/win_image.png index 0c53e1f..e69de29 100644 Binary files a/bundle/win_image.png and b/bundle/win_image.png differ