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
|
function love.load()
fps = 30
upTime = love.timer.getTime()
nextTime = upTime
windowProfile = {
mode = {
width = 256,
height = 240,
},
scale = {
x = 2,
y = 2,
},
title = "GNU & Bola - The libre beat'em up game",
}
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'
sprites = require 'scripts.sprites.sprites'
character = {
bola = require 'scripts.bola.bola'
}
end
function love.keypressed(key)
if key == button.quit then
love.event.quit()
end
end
function love.update(dt)
nextTime = nextTime + (1 / fps)
character.bola.stand.start = character.bola.stand.start + (dt * character.bola.stand.fps)
character.bola.walk.start = character.bola.walk.start + (dt * character.bola.walk.fps)
frames = {
bola = require 'scripts.bola.frames'
}
game = {
animation = function(start, frames)
if math.floor(start) > frames then
start = 1
end
return start
end
}
character.bola.stand.start = game.animation(character.bola.stand.start, frames.bola.stand)
character.bola.walk.start = game.animation(character.bola.walk.start, frames.bola.walk)
transform = {
bola = {
origin = {
y = character.bola.origin.y
}
}
}
if love.keyboard.isDown(button.left) then
character.bola.acceleration = character.bola.acceleration + dt
if character.bola.position.x >= character.bola.origin.x then
if character.bola.acceleration < 3 then
character.bola.position.x = character.bola.position.x - (character.bola.speed * dt) - character.bola.acceleration
else
character.bola.position.x = character.bola.position.x - (character.bola.speed * dt) - 3
end
end
quad = character.bola.walk[math.floor(character.bola.walk.start)]
character.bola.scale.x = -1
elseif love.keyboard.isDown(button.right) then
character.bola.acceleration = character.bola.acceleration + dt
if character.bola.position.x <= windowProfile.mode.width - character.bola.origin.x then
if character.bola.acceleration < 3 then
character.bola.position.x = character.bola.position.x + (character.bola.speed * dt) + character.bola.acceleration
else
character.bola.position.x = character.bola.position.x + (character.bola.speed * dt) + 3
end
end
quad = character.bola.walk[math.floor(character.bola.walk.start)]
character.bola.scale.x = 1
elseif love.keyboard.isDown(button.down) then
character.bola.acceleration = 0
transform.bola.origin.y = character.bola.origin.y - character.bola.origin.y
quad = character.bola.crouch[1]
else
character.bola.acceleration = 0
quad = character.bola.stand[math.floor(character.bola.stand.start)]
end
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)
love.graphics.draw(
sprites.bola.image,
quad,
character.bola.position.x,
character.bola.position.y,
character.bola.orientation,
character.bola.scale.x,
character.bola.scale.y,
character.bola.origin.x,
transform.bola.origin.y
)
end
|