diff --git a/assets/characters/kupo/kupo.ase b/assets/characters/kupo/kupo.ase index 8b34622..47a0b8d 100644 Binary files a/assets/characters/kupo/kupo.ase and b/assets/characters/kupo/kupo.ase differ diff --git a/assets/characters/kupo/kupo1.png b/assets/characters/kupo/kupo1.png index 62cfac3..2224a29 100644 Binary files a/assets/characters/kupo/kupo1.png and b/assets/characters/kupo/kupo1.png differ diff --git a/assets/characters/kupo/kupo2.png b/assets/characters/kupo/kupo2.png index 961686c..6f86f95 100644 Binary files a/assets/characters/kupo/kupo2.png and b/assets/characters/kupo/kupo2.png differ diff --git a/assets/characters/kupo/kupo3.png b/assets/characters/kupo/kupo3.png index abcd79d..fb04a2a 100644 Binary files a/assets/characters/kupo/kupo3.png and b/assets/characters/kupo/kupo3.png differ diff --git a/assets/characters/kupo/kupo4.png b/assets/characters/kupo/kupo4.png index 7895cf1..da424a2 100644 Binary files a/assets/characters/kupo/kupo4.png and b/assets/characters/kupo/kupo4.png differ diff --git a/assets/characters/kupo/kupo_arrow1.png b/assets/characters/kupo/kupo_arrow1.png index 000c649..36614ea 100644 Binary files a/assets/characters/kupo/kupo_arrow1.png and b/assets/characters/kupo/kupo_arrow1.png differ diff --git a/assets/characters/nancy/fall.ase b/assets/characters/nancy/fall.ase new file mode 100644 index 0000000..06c5f08 Binary files /dev/null and b/assets/characters/nancy/fall.ase differ diff --git a/assets/characters/nancy/fall.png b/assets/characters/nancy/fall.png deleted file mode 100644 index a4d2598..0000000 Binary files a/assets/characters/nancy/fall.png and /dev/null differ diff --git a/assets/characters/nancy/fall1.png b/assets/characters/nancy/fall1.png index 49567e5..c673723 100644 Binary files a/assets/characters/nancy/fall1.png and b/assets/characters/nancy/fall1.png differ diff --git a/assets/characters/nancy/fall2.png b/assets/characters/nancy/fall2.png index 9a59b44..f082e9a 100644 Binary files a/assets/characters/nancy/fall2.png and b/assets/characters/nancy/fall2.png differ diff --git a/assets/characters/nancy/fall3.png b/assets/characters/nancy/fall3.png index 87c85bd..a1d10fd 100644 Binary files a/assets/characters/nancy/fall3.png and b/assets/characters/nancy/fall3.png differ diff --git a/assets/characters/nancy/idle.ase b/assets/characters/nancy/idle.ase new file mode 100644 index 0000000..4f1ad1b Binary files /dev/null and b/assets/characters/nancy/idle.ase differ diff --git a/assets/characters/nancy/idle.png b/assets/characters/nancy/idle.png deleted file mode 100644 index f773a61..0000000 Binary files a/assets/characters/nancy/idle.png and /dev/null differ diff --git a/assets/characters/nancy/idle1.png b/assets/characters/nancy/idle1.png index 37bee31..4771efe 100644 Binary files a/assets/characters/nancy/idle1.png and b/assets/characters/nancy/idle1.png differ diff --git a/assets/characters/nancy/idle2.png b/assets/characters/nancy/idle2.png index c6d29ad..2a42d74 100644 Binary files a/assets/characters/nancy/idle2.png and b/assets/characters/nancy/idle2.png differ diff --git a/assets/characters/nancy/idle3.png b/assets/characters/nancy/idle3.png index 6be79ed..f4da759 100644 Binary files a/assets/characters/nancy/idle3.png and b/assets/characters/nancy/idle3.png differ diff --git a/assets/characters/nancy/idle4.png b/assets/characters/nancy/idle4.png index f0e2f7f..7d90e55 100644 Binary files a/assets/characters/nancy/idle4.png and b/assets/characters/nancy/idle4.png differ diff --git a/assets/characters/nancy/jump.ase b/assets/characters/nancy/jump.ase new file mode 100644 index 0000000..c1fe0dd Binary files /dev/null and b/assets/characters/nancy/jump.ase differ diff --git a/assets/characters/nancy/jump.png b/assets/characters/nancy/jump.png deleted file mode 100644 index 55d2dbc..0000000 Binary files a/assets/characters/nancy/jump.png and /dev/null differ diff --git a/assets/characters/nancy/jump1.png b/assets/characters/nancy/jump1.png index 03c850f..46a3605 100644 Binary files a/assets/characters/nancy/jump1.png and b/assets/characters/nancy/jump1.png differ diff --git a/assets/characters/nancy/jump2.png b/assets/characters/nancy/jump2.png index 75dd828..446ff22 100644 Binary files a/assets/characters/nancy/jump2.png and b/assets/characters/nancy/jump2.png differ diff --git a/assets/characters/nancy/jump3.png b/assets/characters/nancy/jump3.png index 35558f0..6e32136 100644 Binary files a/assets/characters/nancy/jump3.png and b/assets/characters/nancy/jump3.png differ diff --git a/assets/characters/nancy/moth_mask/fall.ase b/assets/characters/nancy/moth_mask/fall.ase new file mode 100644 index 0000000..40eab5c Binary files /dev/null and b/assets/characters/nancy/moth_mask/fall.ase differ diff --git a/assets/characters/nancy/moth_mask/fall1.png b/assets/characters/nancy/moth_mask/fall1.png new file mode 100644 index 0000000..926ca8a Binary files /dev/null and b/assets/characters/nancy/moth_mask/fall1.png differ diff --git a/assets/characters/nancy/moth_mask/fall2.png b/assets/characters/nancy/moth_mask/fall2.png new file mode 100644 index 0000000..926ca8a Binary files /dev/null and b/assets/characters/nancy/moth_mask/fall2.png differ diff --git a/assets/characters/nancy/moth_mask/fall3.png b/assets/characters/nancy/moth_mask/fall3.png new file mode 100644 index 0000000..926ca8a Binary files /dev/null and b/assets/characters/nancy/moth_mask/fall3.png differ diff --git a/assets/characters/nancy/moth_mask/idle.ase b/assets/characters/nancy/moth_mask/idle.ase new file mode 100644 index 0000000..2a569aa Binary files /dev/null and b/assets/characters/nancy/moth_mask/idle.ase differ diff --git a/assets/characters/nancy/moth_mask/idle1.png b/assets/characters/nancy/moth_mask/idle1.png new file mode 100644 index 0000000..926ca8a Binary files /dev/null and b/assets/characters/nancy/moth_mask/idle1.png differ diff --git a/assets/characters/nancy/moth_mask/idle2.png b/assets/characters/nancy/moth_mask/idle2.png new file mode 100644 index 0000000..926ca8a Binary files /dev/null and b/assets/characters/nancy/moth_mask/idle2.png differ diff --git a/assets/characters/nancy/moth_mask/idle3.png b/assets/characters/nancy/moth_mask/idle3.png new file mode 100644 index 0000000..926ca8a Binary files /dev/null and b/assets/characters/nancy/moth_mask/idle3.png differ diff --git a/assets/characters/nancy/moth_mask/idle4.png b/assets/characters/nancy/moth_mask/idle4.png new file mode 100644 index 0000000..926ca8a Binary files /dev/null and b/assets/characters/nancy/moth_mask/idle4.png differ diff --git a/assets/characters/nancy/moth_mask/jump.ase b/assets/characters/nancy/moth_mask/jump.ase new file mode 100644 index 0000000..214bcf6 Binary files /dev/null and b/assets/characters/nancy/moth_mask/jump.ase differ diff --git a/assets/characters/nancy/moth_mask/jump1.png b/assets/characters/nancy/moth_mask/jump1.png new file mode 100644 index 0000000..284391c Binary files /dev/null and b/assets/characters/nancy/moth_mask/jump1.png differ diff --git a/assets/characters/nancy/moth_mask/jump2.png b/assets/characters/nancy/moth_mask/jump2.png new file mode 100644 index 0000000..284391c Binary files /dev/null and b/assets/characters/nancy/moth_mask/jump2.png differ diff --git a/assets/characters/nancy/moth_mask/jump3.png b/assets/characters/nancy/moth_mask/jump3.png new file mode 100644 index 0000000..284391c Binary files /dev/null and b/assets/characters/nancy/moth_mask/jump3.png differ diff --git a/assets/characters/nancy/moth_mask/run.ase b/assets/characters/nancy/moth_mask/run.ase new file mode 100644 index 0000000..159c762 Binary files /dev/null and b/assets/characters/nancy/moth_mask/run.ase differ diff --git a/assets/characters/nancy/moth_mask/run1.png b/assets/characters/nancy/moth_mask/run1.png new file mode 100644 index 0000000..0ce1a95 Binary files /dev/null and b/assets/characters/nancy/moth_mask/run1.png differ diff --git a/assets/characters/nancy/moth_mask/run2.png b/assets/characters/nancy/moth_mask/run2.png new file mode 100644 index 0000000..ee7afb4 Binary files /dev/null and b/assets/characters/nancy/moth_mask/run2.png differ diff --git a/assets/characters/nancy/moth_mask/run3.png b/assets/characters/nancy/moth_mask/run3.png new file mode 100644 index 0000000..ee7afb4 Binary files /dev/null and b/assets/characters/nancy/moth_mask/run3.png differ diff --git a/assets/characters/nancy/moth_mask/run4.png b/assets/characters/nancy/moth_mask/run4.png new file mode 100644 index 0000000..0ce1a95 Binary files /dev/null and b/assets/characters/nancy/moth_mask/run4.png differ diff --git a/assets/characters/nancy/moth_mask/run5.png b/assets/characters/nancy/moth_mask/run5.png new file mode 100644 index 0000000..ee7afb4 Binary files /dev/null and b/assets/characters/nancy/moth_mask/run5.png differ diff --git a/assets/characters/nancy/moth_mask/run6.png b/assets/characters/nancy/moth_mask/run6.png new file mode 100644 index 0000000..ee7afb4 Binary files /dev/null and b/assets/characters/nancy/moth_mask/run6.png differ diff --git a/assets/characters/nancy/run.ase b/assets/characters/nancy/run.ase new file mode 100644 index 0000000..1a1eaeb Binary files /dev/null and b/assets/characters/nancy/run.ase differ diff --git a/assets/characters/nancy/run.png b/assets/characters/nancy/run.png deleted file mode 100644 index b89115a..0000000 Binary files a/assets/characters/nancy/run.png and /dev/null differ diff --git a/assets/characters/nancy/run1.png b/assets/characters/nancy/run1.png index 20fbda8..c4619d8 100644 Binary files a/assets/characters/nancy/run1.png and b/assets/characters/nancy/run1.png differ diff --git a/assets/characters/nancy/run2.png b/assets/characters/nancy/run2.png index d60c289..64e3c5f 100644 Binary files a/assets/characters/nancy/run2.png and b/assets/characters/nancy/run2.png differ diff --git a/assets/characters/nancy/run3.png b/assets/characters/nancy/run3.png index 1fe2f76..3606397 100644 Binary files a/assets/characters/nancy/run3.png and b/assets/characters/nancy/run3.png differ diff --git a/assets/characters/nancy/run4.png b/assets/characters/nancy/run4.png index 241217c..7470db7 100644 Binary files a/assets/characters/nancy/run4.png and b/assets/characters/nancy/run4.png differ diff --git a/assets/characters/nancy/run5.png b/assets/characters/nancy/run5.png index 047b8c0..786e84b 100644 Binary files a/assets/characters/nancy/run5.png and b/assets/characters/nancy/run5.png differ diff --git a/assets/characters/nancy/run6.png b/assets/characters/nancy/run6.png index 3890c8e..7a3b757 100644 Binary files a/assets/characters/nancy/run6.png and b/assets/characters/nancy/run6.png differ diff --git a/assets/terrain/tileset.png b/assets/terrain/tileset.png index 107445f..d7b46ef 100644 Binary files a/assets/terrain/tileset.png and b/assets/terrain/tileset.png differ diff --git a/data/scripts/animation.lua b/data/scripts/animation.lua new file mode 100644 index 0000000..a7dc5d2 --- /dev/null +++ b/data/scripts/animation.lua @@ -0,0 +1,127 @@ +function Animation:Draw() + if self.sprite ~= nil then + local relative_position_x = self.pos.x - Camera.pos.x + local relative_position_y = self.pos.y - Camera.pos.y + local origin_compensation_x = - ( (self.sprite_offset.x) * math.cos(self.sprite_rotation) - (self.sprite_offset.y) * math.sin(self.sprite_rotation)) + local origin_compensation_y = - ( (self.sprite_offset.x) * math.sin(self.sprite_rotation) + (self.sprite_offset.y) * math.cos(self.sprite_rotation)) + local dimensions_x = self.sprite_scale.x * self.sprite_flip.x + local dimensions_y = self.sprite_scale.y * self.sprite_flip.y + love.graphics.draw( + self.sprite, + relative_position_x + origin_compensation_x * dimensions_x, + relative_position_y + origin_compensation_y * dimensions_y, + self.sprite_rotation, + self.sprite_scale.x * self.sprite_flip.x, + self.sprite_scale.y * self.sprite_flip.y + ) + if debug_collision then + love.graphics.setColor(1, 0, 0) + love.graphics.circle( "line", relative_position_x, relative_position_y, 2 ) + love.graphics.setColor(0, 1 ,0) + love.graphics.circle( "line", + relative_position_x + origin_compensation_x * dimensions_x, + relative_position_y + origin_compensation_y * dimensions_y, + 2 + ) + end + love.graphics.setColor(1, 1 ,1) + end +end + +function Animation:New(anim,frames,speed) + local anim_data = { + frame = 1, + subframe = 1, + path = anim.path, + frames = anim.frames, + speed = anim.speed, + imgs = anim.imgs + } + self.animations[#self.animations+1] = anim_data + + return self.animations[#self.animations] +end + +function DrawAnimationFrame(animation, frame, x, y, rotate, sx, sy) + local x = x or 0 + local y = y or 0 + local sx = sx or 1 + local sy = sy or 1 + love.graphics.draw( + animation.imgs[frame], + x - Camera.pos.x, + y - Camera.pos.y, + rotate, + sx, + sy + ) +end + +function DrawAnimation(animation, x, y, rotate, sx, sy) + local x = x or 0 + local y = y or 0 + local sx = sx or 1 + local sy = sy or 1 + if game_paused ~= true then + -- try to animate + animation.subframe = animation.subframe + current_dt + + if animation.subframe >= animation.speed then + animation.frame = animation.frame + 1 + animation.subframe = animation.subframe - animation.speed + end + + -- cycle + if animation.frame >= animation.frames+1 then + animation.frame = animation.frame - animation.frames + end + end + love.graphics.draw( + animation.imgs[animation.frame], + x - Camera.pos.x, + y - Camera.pos.y, + rotate, + sx, + sy + ) +end + +function Entity:Animate() + if game_paused ~= true and self.anim.path ~= nil then + -- try to animate + self.anim.subframe = self.anim.subframe + current_dt + + if self.anim.subframe >= self.anim.speed then + self.anim.frame = self.anim.frame + 1 + self.anim.subframe = self.anim.subframe - self.anim.speed + end + + -- cycle + if self.anim.frame >= self.anim.frames+1 then + self.anim.frame = self.anim.frame - self.anim.frames + end + + -- change + self.sprite = self.anim.imgs[self.anim.frame] + end +end + +function Entity:LoadAnimation(anim,frames,speed) + if self.anim.path ~= anim and self.anim.path ~= anim.path then + if frames ~= nil and speed ~= nil then + self.anim.path = anim or nil + self.anim.frames = frames or 4 + self.anim.speed = speed or frames + else + self.anim.path = anim.path + self.anim.frames = anim.frames + self.anim.speed = anim.speed + end + + self.anim.imgs = anim.imgs + end +end + +require "data/scripts/entities/kupo" +require "data/scripts/entities/arrow" +require "data/scripts/entities/player" diff --git a/data/scripts/entities/player.lua b/data/scripts/entities/player.lua index 855b8aa..5d60d3c 100644 --- a/data/scripts/entities/player.lua +++ b/data/scripts/entities/player.lua @@ -11,7 +11,7 @@ x = 0, y = 0 } - + -- constants o.acc = 45 o.friction = 20 @@ -22,7 +22,7 @@ o.jumpMaxSpeed = 9.5 o.zeroSpeed = 0.001 o.lightRange = 20 - + -- status o.isJumping = false o.isOnGround = 0 @@ -35,11 +35,10 @@ -- sprite o.sprite_offset = {x = 8, y = 16} o.target_offset = {x = 0, y = 12} - + -- lights - o.light = CreateLight(o.pos.x,o.pos.y,o.lightRange) - - + + setmetatable(o, self) self.__index = self @@ -86,10 +85,7 @@ function Player:Smart() end function Player:HandleAnimation() - -- move light to position, :D - self.light.pos.x = self.pos.x - self.target_offset.x - self.light.pos.y = self.pos.y - self.target_offset.y - + -- flip sprite to look in the direction is moving if self.vel.x ~= 0 then self.sprite_flip.x = math.sign(self.vel.x) end diff --git a/data/scripts/enums.lua b/data/scripts/enums.lua index f7272f5..913d5e3 100644 --- a/data/scripts/enums.lua +++ b/data/scripts/enums.lua @@ -17,6 +17,28 @@ animation = { speed = 1 } }, + nancy_moth_mask = { + idle = { + path = "assets/characters/nancy/moth_mask/idle", + frames = 4, + speed = 1/8 + }, + run = { + path = "assets/characters/nancy/moth_mask/run", + frames = 6, + speed = 1/8 + }, + fall = { + path = "assets/characters/nancy/moth_mask/fall", + frames = 3, + speed = 1/8 + }, + jump = { + path = "assets/characters/nancy/moth_mask/jump", + frames = 3, + speed = 1/8 + } + }, nancy = { idle = { path = "assets/characters/nancy/idle", diff --git a/data/scripts/lights.lua b/data/scripts/lights.lua index 709eaf9..b9b3c4f 100644 --- a/data/scripts/lights.lua +++ b/data/scripts/lights.lua @@ -24,7 +24,7 @@ function SetDarkness() end function DoDarkness() - love.graphics.setColor(0,0,0,0.3) + love.graphics.setColor(0,0,0,1) love.graphics.rectangle("fill",0,0,game.width,game.height) end @@ -34,8 +34,8 @@ function DoLights() if LightTimer >= 3 then LightTimer = LightTimer - 3 for _, light in pairs(Lights) do - light.flicker = math.random(-2,2) - light.dim = (light.range+light.flicker)/5 + light.flicker = math.random(-1,1) + light.dim = (light.range+light.flicker)/2 end end