From 46891abb64a80f2649542d6744835b83a25cde7f Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Wed, 23 Nov 2016 15:41:03 -0300 Subject: Begin modularize the code --- .../main.lua | 241 +++++++++++++++++++++ .../meta_sprites/bola/sheet0_color0_alpha.png | 1 + .../scripts/bola/sprites.lua | 5 + .../scripts/player/1/button.lua | 11 + 4 files changed, 258 insertions(+) create mode 100644 src/gnu_and_bola_-_the_libre_beat_em_up_game/main.lua create mode 120000 src/gnu_and_bola_-_the_libre_beat_em_up_game/multimedia/famicom/meta_sprites/bola/sheet0_color0_alpha.png create mode 100644 src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/bola/sprites.lua create mode 100644 src/gnu_and_bola_-_the_libre_beat_em_up_game/scripts/player/1/button.lua (limited to 'src/gnu_and_bola_-_the_libre_beat_em_up_game') 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', +} -- cgit v1.2.3-54-g00ecf