diff options
author | Aki <nthirtyone@gmail.com> | 2016-08-22 18:27:14 +0200 |
---|---|---|
committer | Aki <nthirtyone@gmail.com> | 2016-08-22 18:27:14 +0200 |
commit | 213c783bdde0fe5bf9709e19168a8e5049c7b13a (patch) | |
tree | b6cd11f16bef64c0a45da03f2a16c3ed814c9474 /header.lua | |
parent | 7d9d6a04c0bf916da50b5ab6dbafcee4a492398f (diff) | |
download | roflnauts-213c783bdde0fe5bf9709e19168a8e5049c7b13a.zip roflnauts-213c783bdde0fe5bf9709e19168a8e5049c7b13a.tar.gz roflnauts-213c783bdde0fe5bf9709e19168a8e5049c7b13a.tar.bz2 |
game title
Diffstat (limited to 'header.lua')
-rw-r--r-- | header.lua | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/header.lua b/header.lua new file mode 100644 index 0000000..d538ab3 --- /dev/null +++ b/header.lua @@ -0,0 +1,61 @@ +-- `Header` +-- It dances! + +Header = { + x = 0, + y = 0, + text = "", + parent, + bounce = 2, +} +function Header:new(parent) + local o = {} + setmetatable(o, self) + self.__index = self + o.parent = parent + return o +end +function Header:setText(text) + self.text = text or "" + return self +end +function Header:setPosition(x, y) + self.x = x or 0 + self.y = y or 0 + return self +end +function Header:getBounce(f) + local f = f or 1 + return math.sin(self.bounce*f*math.pi) +end +function Header:getPosition() return self.x,self.y end -- gives x,y of Element +function Header:focus(next) + if next and self.parent then + self.parent:next() + else + self.parent:previous() + end +end +function Header:blur() end -- Called when Element loses focus + +-- LÖVE2D callbacks +function Header:draw(scale) + local angle = self:getBounce(2) + local dy = self:getBounce()*4 + local x,y = self:getPosition() + love.graphics.setColor(255,255,255,255) + love.graphics.setFont(Bold) + love.graphics.printf(string.upper(self.text),x*scale,(y+dy)*scale,400,"center",(angle*5)*math.pi/180,scale,scale,200,12) +end +function Header:update(dt) + self.bounce = self.bounce + dt*0.7 + if self.bounce > Header.bounce then -- Header.bounce is initial + self.bounce = self.bounce - Header.bounce + end +end + +-- Controller callbacks +function Header:controlpressed(set, action, key) end +function Header:controlreleased(set, action, key) end + +return Header
\ No newline at end of file |