summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-11-23 15:41:03 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-11-23 15:41:03 -0300
commit46891abb64a80f2649542d6744835b83a25cde7f (patch)
tree17b5f5fd82a6dd18602f9bbfe86a4405485703a8 /src
parent5c100f942556e519d9a2effd53ff161a5f47cb7b (diff)
Begin modularize the code
Diffstat (limited to 'src')
-rw-r--r--src/gnu_and_bola_-_the_libre_beat_em_up_game/main.lua241
l---------src/gnu_and_bola_-_the_libre_beat_em_up_game/multimedia/famicom/meta_sprites/bola/sheet0_color0_alpha.png1
-rw-r--r--src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/bola/sprites.lua5
-rw-r--r--src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/player/1/button.lua11
4 files changed, 258 insertions, 0 deletions
diff --git a/src/gnu_and_bola_-_the_libre_beat_em_up_game/main.lua b/src/gnu_and_bola_-_the_libre_beat_em_up_game/main.lua
new file mode 100644
index 0000000..aa2cc2e
--- /dev/null
+++ b/src/gnu_and_bola_-_the_libre_beat_em_up_game/main.lua
@@ -0,0 +1,241 @@
+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 = {
+ bola = require 'scripts.bola.sprites'
+ }
+
+ character = {
+ bola = {
+ position = {
+ x = windowProfile.mode.width / 2,
+ y = windowProfile.mode.height / 2,
+ },
+ orientation = 0,
+ scale = {
+ x = 1,
+ y = 1,
+ },
+ origin = {
+ x = sprites.bola.x / 2,
+ y = sprites.bola.y / 2,
+ },
+ acceleration = 0,
+ speed = 125,
+ stand = {
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 2, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 5, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 5, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ start = 1,
+ fps = 9,
+ },
+ walk = {
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 2, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ start = 1,
+ fps = 9,
+ },
+ run = {
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 2, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()),
+ start = 1,
+ fps = 12,
+ },
+ crouch = {
+ love.graphics.newQuad(sprites.bola.x * 2, sprites.bola.y * 2, sprites.bola.x, sprites.bola.y / 2, sprites.bola.image:getDimensions()),
+ start = 1,
+ fps = 9,
+ },
+ }
+ }
+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 = {
+ stand = # character.bola.stand,
+ walk = # character.bola.walk,
+ }
+ }
+
+ 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
diff --git a/src/gnu_and_bola_-_the_libre_beat_em_up_game/multimedia/famicom/meta_sprites/bola/sheet0_color0_alpha.png b/src/gnu_and_bola_-_the_libre_beat_em_up_game/multimedia/famicom/meta_sprites/bola/sheet0_color0_alpha.png
new file mode 120000
index 0000000..d87644a
--- /dev/null
+++ b/src/gnu_and_bola_-_the_libre_beat_em_up_game/multimedia/famicom/meta_sprites/bola/sheet0_color0_alpha.png
@@ -0,0 +1 @@
+../../../../../../mlt/gnu_and_bola_adventure/fc/gph/spr/bola0/metaspritessheet0_color0_alpha.png \ No newline at end of file
diff --git a/src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/bola/sprites.lua b/src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/bola/sprites.lua
new file mode 100644
index 0000000..6d74524
--- /dev/null
+++ b/src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/bola/sprites.lua
@@ -0,0 +1,5 @@
+return {
+ image = love.graphics.newImage('multimedia/famicom/meta_sprites/bola/sheet0_color0_alpha.png'),
+ x = 24,
+ y = 32,
+}
diff --git a/src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/player/1/button.lua b/src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/player/1/button.lua
new file mode 100644
index 0000000..2fa1e36
--- /dev/null
+++ b/src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/player/1/button.lua
@@ -0,0 +1,11 @@
+return {
+ left = 'a',
+ right = 'd',
+ up = 'w',
+ down = 's',
+ button0 = 'j',
+ button1 = 'k',
+ select = 'g',
+ start = 'h',
+ quit = 'escape',
+}