summaryrefslogtreecommitdiff
path: root/src/gnu_and_bola_-_the_libre_beat_em_up_game/main.lua
blob: 3a7f8b787d200ddf75353637b0865e841fe2d65b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
function love.load()
  fps = 30
  upTime = love.timer.getTime()
  nextTime = upTime
  windowProfile = require 'scripts.window.profile'

  love.graphics.setBackgroundColor(0, 232, 216)
  love.graphics.setDefaultFilter('nearest', 'nearest')
  love.window.setMode(windowProfile.mode.width * windowProfile.scale.x, windowProfile.mode.height * windowProfile.scale.y)
  love.window.setTitle(windowProfile.title)

  button  = require 'scripts.player.1.button'
  metaSprites = require 'scripts.meta_sprites'

  character = {
    bola = require 'scripts.bola.default'
  }

  bolaAnimation = require 'scripts.bola.animation'
  bolaMotion = require 'scripts.bola.motion'
  bolaGravity = require 'scripts.bola.gravity'
  bolaLimit = require 'scripts.bola.limit'
end

function love.keypressed(key, scancode, isrepeat)
  isrepeat = true

  if scancode == button.quit then
    love.event.quit()
  end

  if scancode == button.a  then
    character.bola.actionA = true
    character.bola.actionDown = false
    character.bola.actionUp = false
  end

  if scancode == button.left then
    character.bola.actionLeft = true
  end

  if scancode == button.right then
    character.bola.actionRight = true
  end

  if scancode == button.up and character.bola.jump.isJumping == false then
      character.bola.actionUp = true
  end

  if scancode == button.down and character.bola.jump.isJumping == false then
    character.bola.actionDown = true
  end
end

function love.keyreleased(key, scancode)
  if scancode == button.a then
    character.bola.actionA     = false
  end

  if scancode == button.left then
    character.bola.actionLeft  = false
  end

  if scancode == button.right then
    character.bola.actionRight = false
  end

  if scancode == button.up then
    character.bola.actionUp    = false
  end

  if scancode == button.down then
    character.bola.actionDown  = false
  end

  if scancode == button.b then
    character.bola.actionB     = false
  end

  if scancode == button.a then
    character.bola.actionA = false

    if character.bola.jump.velocity ~= 0 then
      character.bola.jump.limitButtonJump = true
    end
  end
end

function love.update(dt)
  nextTime = nextTime + (1 / fps)

  bolaAnimation.animation(dt)
  bolaMotion.motion(dt)
  bolaGravity.motion(dt)
  bolaLimit.motion(dt)
end

function love.draw()
  local currentTime = love.timer.getTime()
  if nextTime <= currentTime then
    nextTime = currentTime
    return
  end
  love.timer.sleep(nextTime - currentTime)

  love.graphics.scale(windowProfile.scale.x, windowProfile.scale.y)

  love.graphics.print('FPS: ' .. love.timer.getFPS(), 0, 0)

  draw = {
    bola = love.graphics.draw(
      metaSprites.bola.image,
      quad.bola,
      character.bola.position.x,
      character.bola.position.y,
      character.bola.orientation,
      character.bola.scale.x,
      character.bola.scale.y,
      character.bola.origin.x,
      character.bola.origin.y
    )
  }
end