scene/mainmenu: prerender banner and borders
This commit is contained in:
parent
9fe9865878
commit
5c8886df92
|
@ -30,6 +30,8 @@ local Inventory = require "game.inventory"
|
|||
|
||||
local binser = require "libs.binser"
|
||||
|
||||
Game.gui = require "game.modules.gui"
|
||||
|
||||
function Game:new()
|
||||
self.slot = -1
|
||||
self.gametime = 0
|
||||
|
|
|
@ -1,3 +1,27 @@
|
|||
local gui = {}
|
||||
|
||||
function gui.newBorder(id, width, height)
|
||||
local filename = "assets/sprites/gui/hborder.png"
|
||||
local texture = love.graphics.newImage(filename)
|
||||
local w, h = texture:getDimensions()
|
||||
local quad = love.graphics.newQuad(0, id*32, 48, 32, w, h)
|
||||
local back = love.graphics.newQuad(0, id*32, 24, 32, w, h)
|
||||
local canvas = love.graphics.newCanvas(width, height)
|
||||
|
||||
local xstart = w - 48
|
||||
|
||||
love.graphics.setCanvas( canvas )
|
||||
|
||||
for i=1, math.ceil(height / 32) do
|
||||
love.graphics.draw(texture, quad, xstart, (i-1)*32)
|
||||
for j=1, math.ceil(height / 32) do
|
||||
love.graphics.draw(texture, back, xstart - ((j)*24), (i-1)*32)
|
||||
end
|
||||
end
|
||||
|
||||
love.graphics.setCanvas( )
|
||||
|
||||
return canvas
|
||||
end
|
||||
|
||||
return gui
|
||||
|
|
|
@ -20,12 +20,9 @@ function MainMenu:new()
|
|||
self.assets:setMusic("assets/music/options.ogg")
|
||||
self.assets:playMusic()
|
||||
|
||||
assets:clearSprites()
|
||||
assets:addSprite("banner", 480, 34, "gui/")
|
||||
assets.sprites["banner"]:newAnimation(1, 1, 0.08)
|
||||
assets:addSprite("hborder", 48, 32, "gui/")
|
||||
assets.sprites["hborder"]:newAnimation(1, 1, 0.08)
|
||||
assets.sprites["hborder"]:newAnimation(1, 2, 0.08)
|
||||
self:createBanner()
|
||||
self.leftborder = game.gui.newBorder(0, 64+24, 424)
|
||||
self.rightborder = game.gui.newBorder(1, 64+24, 424)
|
||||
|
||||
assets:clearTextBox()
|
||||
assets:addTextBox("bluetextbox")
|
||||
|
@ -51,6 +48,22 @@ function MainMenu:createBackground( filename, emblem_filename )
|
|||
love.graphics.setCanvas( )
|
||||
end
|
||||
|
||||
function MainMenu:createBanner()
|
||||
local Banner = love.graphics.newImage( "assets/sprites/gui/banner.png" )
|
||||
local BannerFont = love.graphics.newImageFont("assets/fonts/large.png", " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ", 1)
|
||||
local w, h = Banner:getDimensions()
|
||||
self.banner = love.graphics.newCanvas(w, h)
|
||||
|
||||
love.graphics.setCanvas( self.banner )
|
||||
|
||||
love.graphics.draw(Banner, 0, 0)
|
||||
love.graphics.setFont(BannerFont)
|
||||
love.graphics.printf("IMPERIUM PORCORUM", 0, 6, 480, "center")
|
||||
|
||||
love.graphics.setCanvas( )
|
||||
|
||||
end
|
||||
|
||||
function MainMenu:update(dt)
|
||||
MainMenu.super.update(self, dt)
|
||||
lovebird.update()
|
||||
|
@ -71,22 +84,14 @@ function MainMenu:mousepressed( x, y, button, istouch )
|
|||
end
|
||||
|
||||
function MainMenu:draw()
|
||||
love.graphics.draw(self.background)
|
||||
|
||||
for i=1,12 do
|
||||
assets.sprites["hborder"]:draw(1, 16, (i*32)-64+bannerAnim)
|
||||
assets.sprites["hborder"]:draw(2, 480-16, (i*32)-64-bannerAnim, 0, -1, 1)
|
||||
end
|
||||
love.graphics.setColor(170, 0, 0)
|
||||
love.graphics.rectangle("fill", 0, 0, 16, 272)
|
||||
love.graphics.setColor(0, 170, 0)
|
||||
love.graphics.rectangle("fill", 480-16, 0, 16, 272)
|
||||
utils.graphics.resetColor()
|
||||
|
||||
assets.fonts["large"]:set()
|
||||
assets.sprites["banner"]:draw(1, 0, 8)
|
||||
love.graphics.printf(self.debugmenu.label, 0, 14, 480, "center")
|
||||
love.graphics.draw(self.background)
|
||||
|
||||
love.graphics.draw(self.leftborder, 0, -32+bannerAnim, 0, 1, 1)
|
||||
love.graphics.draw(self.rightborder, 424, -bannerAnim, 0, -1, 1)
|
||||
|
||||
love.graphics.draw(self.banner, 212, 8, 0, 1, 1, 480/2)
|
||||
|
||||
menus:draw()
|
||||
|
||||
|
|
Loading…
Reference in New Issue