fysplane/scoreboard.lua

50 lines
2.1 KiB
Lua
Raw Normal View History

2014-10-18 22:46:27 +00:00
Class = require 'hump/class'
require 'settings'
require 'utils'
local SCOREBOARD_FONT = love.graphics.newFont(16)
Scoreboard = Class{
init = function(self, x, y, getPlayer)
self.getPlayer = getPlayer
2014-10-18 22:46:27 +00:00
self.x = x
self.y = y
end;
draw = function(self)
local player = self.getPlayer()
if player.plane == nil then
2014-10-18 22:46:27 +00:00
return
end
local origWidth = love.graphics.getLineWidth()
love.graphics.setFont(SCOREBOARD_FONT)
love.graphics.setColor(128, 57, 75, 255)
love.graphics.setLineWidth(3)
love.graphics.rectangle("line", self.x, self.y, SCOREBOARD_WIDTH, SCOREBOARD_HEIGHT)
love.graphics.print(player.name, self.x + SCOREBOARD_MARGIN, self.y + SCOREBOARD_MARGIN)
2014-10-18 22:46:27 +00:00
love.graphics.print("Score", self.x + SCOREBOARD_MARGIN, self.y + SCOREBOARD_MARGIN + 20)
love.graphics.printf(player.score, self.x + SCOREBOARD_MARGIN, self.y + SCOREBOARD_MARGIN + 20, SCOREBOARD_WIDTH - 2 * SCOREBOARD_MARGIN, "right")
2014-10-18 22:46:27 +00:00
love.graphics.setLineWidth(origWidth)
local health_ratio = player.plane.health / PLANE_HEALTH
2014-10-18 22:46:27 +00:00
local start_color = {0, 255, 0}
local end_color = {255, 0, 0}
love.graphics.setColor(colorSlide(start_color, end_color, health_ratio))
love.graphics.rectangle("fill", self.x + SCOREBOARD_MARGIN, self.y + SCOREBOARD_MARGIN + 45, (SCOREBOARD_WIDTH - 2 * SCOREBOARD_MARGIN) * health_ratio, 20)
2014-10-18 23:32:37 +00:00
love.graphics.setColor({0, 0, 0, 255})
love.graphics.print("Health", self.x + SCOREBOARD_MARGIN, self.y + SCOREBOARD_MARGIN + 45)
2014-10-18 23:22:14 +00:00
local engine_ratio = player.plane.motorPower / ENGINE_MAX
2014-10-18 23:22:14 +00:00
local start_color = {0, 255, 0}
local end_color = {255, 0, 0}
love.graphics.setColor(colorSlide(start_color, end_color, engine_ratio))
love.graphics.rectangle("fill", self.x + SCOREBOARD_MARGIN, self.y + SCOREBOARD_MARGIN + 70, (SCOREBOARD_WIDTH - 2 * SCOREBOARD_MARGIN) * engine_ratio, 20)
2014-10-18 23:32:37 +00:00
love.graphics.setColor({0, 0, 0, 255})
love.graphics.print("Engine", self.x + SCOREBOARD_MARGIN, self.y + SCOREBOARD_MARGIN + 70)
2014-10-18 22:46:27 +00:00
end;
}