init
This commit is contained in:
64
modules/content_loader.lua
Normal file
64
modules/content_loader.lua
Normal file
@@ -0,0 +1,64 @@
|
||||
--import media
|
||||
--import spritesheets
|
||||
local spritesheets = {}
|
||||
--load jsons
|
||||
--load player jumping
|
||||
spritesheets["player_jump"] = peachy.new("assets/images/spritesheets/player.json", love.graphics.newImage("assets/images/spritesheets/player.png"), "Jump")
|
||||
--load player walking left
|
||||
spritesheets["player_walk_left"] = peachy.new("assets/images/spritesheets/player.json", love.graphics.newImage("assets/images/spritesheets/player.png"), "Walk_left")
|
||||
--load player walking right
|
||||
spritesheets["player_walk_right"] = peachy.new("assets/images/spritesheets/player.json", love.graphics.newImage("assets/images/spritesheets/player.png"), "Walk_right")
|
||||
--load player idle
|
||||
spritesheets["player_idle"] = peachy.new("assets/images/spritesheets/player.json", love.graphics.newImage("assets/images/spritesheets/player.png"), "Idle")
|
||||
--load player dying
|
||||
spritesheets["player_die"] = peachy.new("assets/images/spritesheets/player.json", love.graphics.newImage("assets/images/spritesheets/player.png"), "Die")
|
||||
--load player DEFAULT
|
||||
spritesheets["player_default"] = peachy.new("assets/images/spritesheets/player.json", love.graphics.newImage("assets/images/spritesheets/player.png"), "Default")
|
||||
|
||||
--load backgrounds
|
||||
local backgrounds = {}
|
||||
for i, file in ipairs(love.filesystem.getDirectoryItems("assets/images/backgrounds")) do
|
||||
if file:find(".png") then
|
||||
--load backgrounds
|
||||
print(i)
|
||||
backgrounds[i] = love.graphics.newImage("assets/images/backgrounds/"..file)
|
||||
end
|
||||
end
|
||||
--load sound effects
|
||||
local sound_effects = {}
|
||||
for i, file in ipairs(love.filesystem.getDirectoryItems("assets/sounds/effects")) do
|
||||
if file:find(".ogg") then
|
||||
--load sound effects
|
||||
local keyname = file:gsub(".ogg", "")
|
||||
sound = love.audio.newSource("assets/sounds/effects/"..file, "static")
|
||||
sound_effects[keyname] = {}
|
||||
sound_effects[keyname].volume = 1
|
||||
sound_effects[keyname].timer = love.timer.getTime()
|
||||
sound_effects[keyname].first_play = true
|
||||
sound_effects[keyname].sound = sound
|
||||
sound_effects[keyname].duration = sound:getDuration()
|
||||
sound_effects[keyname].timer_min = sound:getDuration() * 2
|
||||
sound_effects[keyname].play = function(self)
|
||||
if (love.timer.getTime() - self.timer) >= self.timer_min or self.first_play then
|
||||
self.timer = love.timer.getTime()
|
||||
self.first_play = false
|
||||
self.sound:setVolume(self.volume)
|
||||
self.sound:play()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
--load music
|
||||
local music = {}
|
||||
for i, file in ipairs(love.filesystem.getDirectoryItems("assets/sounds/music")) do
|
||||
if file:find(".ogg") then
|
||||
--load music
|
||||
music[file:sub(1, -5)] = love.audio.newSource("assets/sounds/music/"..file, "stream")
|
||||
end
|
||||
end
|
||||
return {
|
||||
spritesheets = spritesheets,
|
||||
backgrounds = backgrounds,
|
||||
sound_effects = sound_effects,
|
||||
music = music
|
||||
}
|
33
modules/draw_callback.lua
Normal file
33
modules/draw_callback.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
local spritesheets = {}
|
||||
local player = {}
|
||||
local game = {}
|
||||
|
||||
function drawerinit(spritesheetst, playert, gamex)
|
||||
spritesheets = spritesheetst
|
||||
player = playert
|
||||
game = gamex
|
||||
end
|
||||
|
||||
local function draw()
|
||||
--draw background
|
||||
love.graphics.draw(backgrounds[game.level], 0, 0)
|
||||
--draw player_animation
|
||||
player.animation:draw(player.x, player.y)
|
||||
if player.state == "idle" then
|
||||
spritesheets["player_idle"]:draw(player.x, player.y)
|
||||
elseif player.state == "walk_left" then
|
||||
spritesheets["player_walk_left"]:draw(player.x, player.y)
|
||||
elseif player.state == "walk_right" then
|
||||
spritesheets["player_walk_right"]:draw(player.x, player.y)
|
||||
elseif player.state == "jump" then
|
||||
spritesheets["player_jump"]:draw(player.x, player.y)
|
||||
elseif player.state == "die" then
|
||||
spritesheets["player_die"]:draw(player.x, player.y)
|
||||
else
|
||||
spritesheets["player_default"]:draw(player.x, player.y)
|
||||
end
|
||||
end
|
||||
return {
|
||||
drawerinit = drawerinit,
|
||||
draw = draw
|
||||
}
|
13
modules/globals.lua
Normal file
13
modules/globals.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
local game = {}
|
||||
game.debug = true
|
||||
game.width = 1024
|
||||
game.height = 768
|
||||
game.title = "Weeeeeeeee"
|
||||
game.version = "0.0.1"
|
||||
game.fullscreen = false
|
||||
game.level = 1
|
||||
game.die_animation_elapsed = false
|
||||
|
||||
return {
|
||||
game = game
|
||||
}
|
80
modules/player.lua
Normal file
80
modules/player.lua
Normal file
@@ -0,0 +1,80 @@
|
||||
local player = {}
|
||||
player.x = 0
|
||||
player.y = 500
|
||||
player.width = 160
|
||||
player.height = 160
|
||||
player.speed = 200
|
||||
player.jump_height = 500
|
||||
player.state = "idle"
|
||||
player.direction = "right"
|
||||
player.alive = true
|
||||
player.init = function(self, sound_effects, spritesheets, game)
|
||||
self.sound_effects = sound_effects
|
||||
self.spritesheets = spritesheets
|
||||
self.game = game
|
||||
player.animation = spritesheets["player_idle"]
|
||||
end
|
||||
|
||||
player.walk_right = function(self, dt)
|
||||
if self.x < self.game.width - self.width and self.alive then
|
||||
self.x = self.x + self.speed * dt
|
||||
self.state = "walk_right"
|
||||
self.direction = "right"
|
||||
self.animation = self.spritesheets["player_walk_right"]
|
||||
end
|
||||
end
|
||||
player.walk_left = function(self, dt)
|
||||
if self.x > 0 and self.alive then
|
||||
self.x = self.x - self.speed * dt
|
||||
self.state = "walk_left"
|
||||
self.direction = "left"
|
||||
self.animation = self.spritesheets["player_walk_left"]
|
||||
end
|
||||
end
|
||||
player.jump = function(self, dt)
|
||||
if self.y > 0 and self.alive then
|
||||
self.y = self.y - self.jump_height * dt
|
||||
self.state = "jump"
|
||||
self.animation = self.spritesheets["player_jump"]
|
||||
self.sound_effects["jump"]:play()
|
||||
end
|
||||
end
|
||||
player.down = function(self, dt)
|
||||
if self.y < self.game.height - self.height and self.alive then
|
||||
self.y = self.y + self.jump_height * dt
|
||||
self.state = "jump"
|
||||
self.animation = self.spritesheets["player_jump"]
|
||||
self.sound_effects["jump"]:play()
|
||||
end
|
||||
end
|
||||
player.die = function(self, dt)
|
||||
if self.alive then
|
||||
self.alive = false
|
||||
self.state = "die"
|
||||
self.animation = self.spritesheets["player_die"]
|
||||
self.sound_effects["die"]:play()
|
||||
die_animation_elapsed = false
|
||||
end
|
||||
end
|
||||
player.revive = function(self, dt)
|
||||
if not self.alive then
|
||||
self.alive = true
|
||||
self.state = "idle"
|
||||
self.animation = self.spritesheets["player_default"]
|
||||
self.sound_effects["revive"]:play()
|
||||
die_animation_elapsed = false
|
||||
end
|
||||
end
|
||||
player.idle = function(self, dt)
|
||||
if self.alive then
|
||||
self.state = "idle"
|
||||
self.animation = self.spritesheets["player_idle"]
|
||||
end
|
||||
end
|
||||
player.default = function(self, dt)
|
||||
if self.alive then
|
||||
self.state = "default"
|
||||
self.animation = self.spritesheets["player_default"]
|
||||
end
|
||||
end
|
||||
return player
|
54
modules/update_callback.lua
Normal file
54
modules/update_callback.lua
Normal file
@@ -0,0 +1,54 @@
|
||||
local game = {}
|
||||
|
||||
local function updateinit(gamex)
|
||||
game = gamex
|
||||
end
|
||||
|
||||
local function update(dt)
|
||||
--update player_animation
|
||||
if spritesheets["player_die"]:getFrame() ~= 16 and not game.die_animation_elapsed then
|
||||
spritesheets["player_die"]:update(dt)
|
||||
else
|
||||
game.die_animation_elapsed = true
|
||||
end
|
||||
if player.alive then
|
||||
spritesheets["player_jump"]:update(dt)
|
||||
spritesheets["player_walk_left"]:update(dt)
|
||||
spritesheets["player_walk_right"]:update(dt)
|
||||
spritesheets["player_idle"]:update(dt)
|
||||
spritesheets["player_default"]:update(dt)
|
||||
end
|
||||
|
||||
--get keyboard
|
||||
local key = love.keyboard.isDown
|
||||
--move player
|
||||
if key("d") then
|
||||
player:walk_right(dt)
|
||||
elseif key("a") then
|
||||
player:walk_left(dt)
|
||||
else
|
||||
player:idle(dt)
|
||||
end
|
||||
--jump player
|
||||
if key("w") then
|
||||
player:jump(dt)
|
||||
end
|
||||
if game.debug then
|
||||
if key("s") then
|
||||
player:down(dt)
|
||||
end
|
||||
if key("f") then
|
||||
--die
|
||||
player:die(dt)
|
||||
game.die_animation_elapsed = false
|
||||
elseif key("g") then
|
||||
--revive player
|
||||
player:revive(dt)
|
||||
game.die_animation_elapsed = false
|
||||
end
|
||||
end
|
||||
end
|
||||
return {
|
||||
update = update,
|
||||
updateinit = updateinit
|
||||
}
|
Reference in New Issue
Block a user