| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- require 'lib/util'
- g = love.graphics
- setmetatable(_G, { __index = require('lib/cargo').init('/') })
- waveStrength = .002
- waveSpeed = 4
- firstGame = true
- function love.load()
- time = 0
- drawTarget = g.newCanvas(g.getDimensions())
- backTarget = g.newCanvas(g.getDimensions())
- soundscape = love.audio.newSource('sound/background.ogg')
- soundscape:setVolume(.7)
- soundscape:setLooping(true)
- soundscape:play()
- local joysticks = love.joystick.getJoysticks()
- local inputSource = #joysticks > 0 and joysticks[1] or 'mouse'
- bubbles = app.bubbles()
- jellyfish = app.jellyfish(inputSource)
- hud = app.hud()
- local ratio = g.getWidth() / g.getHeight()
- glsl.wave:send('strength', {waveStrength * ratio, waveStrength})
- firstGame = false
- end
- function love.update(dt)
- time = time + dt
- if not hud.dead then
- jellyfish:update(dt)
- end
- bubbles:update(dt)
- hud:update(dt)
- glsl.wave:send('time', time * waveSpeed)
- end
- function love.draw()
- g.setCanvas(drawTarget)
- g.setColor(35, 35, 50)
- g.rectangle('fill', 0, 0, g.getDimensions())
- if not hud.tutorial then
- bubbles:draw()
- jellyfish:draw()
- end
- g.setColor(255, 255, 255)
- g.setCanvas(backTarget)
- g.setShader(glsl.wave)
- g.draw(drawTarget)
- g.setShader()
- g.setCanvas()
- g.draw(backTarget)
- hud:draw()
- end
- function love.keypressed(key)
- if key == 'escape' then
- love.event.quit()
- end
- jellyfish:keypressed(key)
- end
- function love.mousepressed(x, y, b)
- jellyfish:mousepressed(x, y, b)
- end
- function love.mousereleased(x, y, b)
- hud:mousereleased(x, y, b)
- end
- function love.gamepadpressed(joystick, button)
- jellyfish:gamepadpressed(joystick, button)
- end
|