move hud logic to system
This commit is contained in:
parent
84db41dc51
commit
45bfeb5eb5
5 changed files with 69 additions and 72 deletions
|
|
@ -18,13 +18,6 @@
|
|||
:scale scale}))
|
||||
(local debug true)
|
||||
|
||||
; (local collider-debug-boxes [])
|
||||
; (lambda add-collider-debug-box [x y w h]
|
||||
; (table.insert collider-debug-boxes {: x : y :width w :height h}))
|
||||
|
||||
; (var bump-world nil)
|
||||
; (local player { :x 50 :y 50 :w 25 :h 25 :speed 80 :battery 100 :rot 0 })
|
||||
|
||||
|
||||
; (lambda create-charging-station [x y]
|
||||
; (let [
|
||||
|
|
@ -59,9 +52,6 @@
|
|||
; (add-collider-debug-box pad.x pad.y 25 25)))
|
||||
; (table.insert objects.list station)))
|
||||
|
||||
; (lambda load-h-door [obj]
|
||||
; (debug-print obj))
|
||||
|
||||
; (fn load-objects []
|
||||
; (let [(w h) (objects.sprite:getDimensions)]
|
||||
; (set objects.quads.charging-pad (love.graphics.newQuad 0 0 25 25 w h))
|
||||
|
|
@ -74,12 +64,6 @@
|
|||
; "h_door" (load-h-door object))
|
||||
; ))
|
||||
|
||||
; (fn load-player []
|
||||
; (set player.battery 100)
|
||||
; (set player.x (. levels :levels level-key :spawns :player-1 :x))
|
||||
; (set player.y (. levels :levels level-key :spawns :player-1 :y))
|
||||
; (bump-world:add player player.x player.y player.w player.h))
|
||||
|
||||
; (lambda load-level [lvl-name]
|
||||
; (set bump-world (bump.newWorld 25))
|
||||
; (set level-key :tutorial)
|
||||
|
|
@ -88,33 +72,6 @@
|
|||
; (load-walls)
|
||||
; (load-objects))
|
||||
|
||||
; (fn load-assets []
|
||||
; (set objects.sprite (love.graphics.newImage "assets/objects.png"))
|
||||
; (set walls.sprite (love.graphics.newImage "assets/walls.png"))
|
||||
; (set battery-bar-sprite (love.graphics.newImage "assets/battery_bar.png"))
|
||||
; (set player-art
|
||||
; (let [
|
||||
; player-sprite (love.graphics.newImage "assets/player.png")
|
||||
; (w h) (player-sprite:getDimensions)]
|
||||
; {
|
||||
; :player-sprite player-sprite
|
||||
; :player1 {
|
||||
; :quads {
|
||||
; :n (love.graphics.newQuad 0 0 25 25 w h)
|
||||
; :s (love.graphics.newQuad 25 0 25 25 w h)
|
||||
; :ne (love.graphics.newQuad 50 0 25 25 w h)
|
||||
; :e (love.graphics.newQuad 75 0 25 25 w h)
|
||||
; :se (love.graphics.newQuad 100 0 25 25 w h)
|
||||
; :sw (love.graphics.newQuad 125 0 25 25 w h)
|
||||
; :w (love.graphics.newQuad 150 0 25 25 w h)
|
||||
; :nw (love.graphics.newQuad 175 0 25 25 w h)
|
||||
; }
|
||||
; }
|
||||
; }
|
||||
; ))
|
||||
; )
|
||||
|
||||
|
||||
(fn love.load []
|
||||
(love.window.setMode screen.screen-w screen.screen-h)
|
||||
; (tset screen :canvas (love.graphics.newCanvas screen.canvas-w screen.canvas-h))
|
||||
|
|
@ -198,39 +155,13 @@ while 1 do love.event.push('stdin', io.read('*line')) end") :start))
|
|||
; (network.send-update player.x player.y player.rot player.battery))
|
||||
; (set net-state.net-update-timer 0)))
|
||||
|
||||
; (fn draw-ui []
|
||||
; (love.graphics.push)
|
||||
; (love.graphics.translate 0 400)
|
||||
; (let [font (love.graphics.newFont 10) font-small (love.graphics.newFont 6)]
|
||||
; (set-color :cream)
|
||||
; (love.graphics.rectangle "fill" 0 0 screen.canvas-w 100)
|
||||
; (reset-color)
|
||||
; (love.graphics.draw battery-bar-sprite 78 8)
|
||||
; (set-color :dark-purple)
|
||||
; (love.graphics.setFont font)
|
||||
; (love.graphics.print (.. "Battery: " (string.format "%d" player.battery) "%") 6 7)
|
||||
; (set-color :light-blue)
|
||||
; (love.graphics.rectangle "fill" 80 12 (* 152 (/ player.battery 100)) 4)
|
||||
; (love.graphics.setFont font-small)
|
||||
; (set-color :dark-purple)
|
||||
; (love.graphics.print "100%" 229 2)
|
||||
; (set-color :light-pink)
|
||||
; (love.graphics.print "125%" 267 2)
|
||||
; (love.graphics.print "125%" 306 2)
|
||||
; (love.graphics.print "150%" 345 2)
|
||||
; (love.graphics.print "200%" 382 2)
|
||||
; (set-color :dark-purple)
|
||||
; (love.graphics.line 0 0 screen.canvas-w 0)
|
||||
; )
|
||||
; (love.graphics.pop)
|
||||
; )
|
||||
|
||||
|
||||
(fn love.draw []
|
||||
(for [i 1 99 1]
|
||||
(let [draw-trigger (.. "draw" i)]
|
||||
(pool:emit draw-trigger)
|
||||
(when (and (= i 98) debug) (pool:emit "draw-debug")))))
|
||||
(when (and (= i 88) debug) (pool:emit "draw-debug")))))
|
||||
|
||||
; (fn love.draw []
|
||||
; (love.graphics.setCanvas screen.canvas)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,8 @@
|
|||
(set self.y y))
|
||||
(if (> self.battery 0)
|
||||
(set self.battery (- self.battery (* dt 2))))))
|
||||
(beholder.trigger "PLAYER.POS" self.x self.y))
|
||||
(beholder.trigger "PLAYER.POS" self.x self.y)
|
||||
(beholder.trigger "PLAYER.BATTERY" self.battery))
|
||||
|
||||
(fn player.load [self]
|
||||
(set self.battery 100)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
(local beholder (require "libs/beholder"))
|
||||
(local player (require "src/entities/player.fnl"))
|
||||
(local walls (require "src/systems/walls.fnl"))
|
||||
(local hud (require "src/systems/hud.fnl"))
|
||||
|
||||
; (local colliders {
|
||||
; :added {}
|
||||
|
|
@ -42,6 +43,7 @@
|
|||
(nata:oop)
|
||||
camera
|
||||
walls
|
||||
(hud {: screen})
|
||||
]
|
||||
})]
|
||||
(pool:queue (player {:bump-world bump-world :level-key :tutorial}))
|
||||
|
|
|
|||
|
|
@ -16,10 +16,11 @@
|
|||
(set self.x (- x (/ screen.canvas-w 2)))
|
||||
(set self.y (- y (/ screen.canvas-h 2)))))))
|
||||
|
||||
(fn camera.draw89 [self]
|
||||
(love.graphics.pop)) ; undo camera translation
|
||||
|
||||
(fn camera.draw99 [self]
|
||||
(let [screen self.pool.data.screen canvas self.pool.data.canvas]
|
||||
(love.graphics.pop) ; undo camera translation
|
||||
(love.graphics.setCanvas) ; reset to root canvas
|
||||
(color:reset-color)
|
||||
(love.graphics.draw canvas 0 0 0 screen.scale screen.scale)))
|
||||
|
|
|
|||
62
two_player_cleaning_game/src/systems/hud.fnl
Normal file
62
two_player_cleaning_game/src/systems/hud.fnl
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
(local beholder (require "libs/beholder"))
|
||||
(local assets (require "src/assets.fnl"))
|
||||
(local color (require "src/colors.fnl"))
|
||||
|
||||
(var screen nil)
|
||||
(local hud {
|
||||
:player-battery 0
|
||||
})
|
||||
|
||||
(fn hud.load [self]
|
||||
(set self.font (love.graphics.newFont 10))
|
||||
(set self.font-small (love.graphics.newFont 6))
|
||||
|
||||
(beholder.observe "PLAYER.BATTERY" (lambda [bat]
|
||||
(set self.player-battery bat))))
|
||||
|
||||
(lambda draw-header [self]
|
||||
(color.set-color :cream)
|
||||
(love.graphics.rectangle "fill" 0 0 screen.canvas-w 20)
|
||||
(color.set-color :dark-purple)
|
||||
(love.graphics.line 0 20 screen.canvas-w 20))
|
||||
|
||||
(lambda draw-side-walls [self]
|
||||
(color.set-color :cream)
|
||||
(love.graphics.rectangle "fill" 0 0 20 screen.canvas-h)
|
||||
(love.graphics.rectangle "fill" (- screen.canvas-w 20) 0 20 screen.canvas-h)
|
||||
(color.set-color :dark-purple)
|
||||
(love.graphics.line 20 0 20 screen.canvas-w)
|
||||
(love.graphics.line (- screen.canvas-w 20) 0 (- screen.canvas-w 20) screen.canvas-w))
|
||||
|
||||
(lambda draw-footer [self]
|
||||
(love.graphics.push)
|
||||
(love.graphics.translate 0 400)
|
||||
(color.set-color :cream)
|
||||
(love.graphics.rectangle "fill" 0 0 screen.canvas-w 100)
|
||||
(color.reset-color)
|
||||
(love.graphics.draw assets.battery-bar-sprite 78 8)
|
||||
(color.set-color :dark-purple)
|
||||
(love.graphics.setFont self.font)
|
||||
(love.graphics.print (.. "Battery: " (string.format "%d" self.player-battery) "%") 6 7)
|
||||
(color.set-color :light-blue)
|
||||
(love.graphics.rectangle "fill" 80 12 (* 152 (/ self.player-battery 100)) 4)
|
||||
(love.graphics.setFont self.font-small)
|
||||
(color.set-color :dark-purple)
|
||||
(love.graphics.print "100%" 229 2)
|
||||
(color.set-color :light-pink)
|
||||
(love.graphics.print "125%" 267 2)
|
||||
(love.graphics.print "125%" 306 2)
|
||||
(love.graphics.print "150%" 345 2)
|
||||
(love.graphics.print "200%" 382 2)
|
||||
(color.set-color :dark-purple)
|
||||
(love.graphics.line 0 0 screen.canvas-w 0)
|
||||
(love.graphics.pop))
|
||||
|
||||
(fn hud.draw90 [self]
|
||||
(draw-side-walls self)
|
||||
(draw-footer self)
|
||||
(draw-header self))
|
||||
|
||||
(lambda [{:screen s}]
|
||||
(set screen s)
|
||||
hud)
|
||||
Loading…
Add table
Add a link
Reference in a new issue