From b8b252597589b12c942a28dc7acd2b78e88a6af0 Mon Sep 17 00:00:00 2001 From: lustlion Date: Mon, 25 Oct 2021 02:00:21 +0200 Subject: [PATCH] REWORKED HOW THINGS ARE SCALED speed values should be adjusted accordingly, but maybe i slipped some i changed: player acc arrow speed i intentionally didnt change: jump speed --- data/scripts/entities/kupo.lua | 4 ++-- data/scripts/entities/player.lua | 12 ++++++------ data/scripts/entity.lua | 16 ++++++++-------- data/scripts/enums.lua | 2 +- main.lua | 15 ++++++++++----- 5 files changed, 27 insertions(+), 22 deletions(-) diff --git a/data/scripts/entities/kupo.lua b/data/scripts/entities/kupo.lua index e4bcd33..a36eeff 100644 --- a/data/scripts/entities/kupo.lua +++ b/data/scripts/entities/kupo.lua @@ -129,8 +129,8 @@ function Kupo:HandleAnimation() DrawAnimationFrame( self.bow, math.min(self.bow_frame,self.bow_frames), - self.pos.x + ( 8 * math.sin(self.bow_rotation)) * game.scale, - self.pos.y + (2 - 6 * math.cos(self.bow_rotation)) * game.scale, + self.pos.x + ( 8 * math.sin(self.bow_rotation)), + self.pos.y + (2 - 6 * math.cos(self.bow_rotation)), self.bow_rotation ) end diff --git a/data/scripts/entities/player.lua b/data/scripts/entities/player.lua index fb25470..b80ee8c 100644 --- a/data/scripts/entities/player.lua +++ b/data/scripts/entities/player.lua @@ -12,18 +12,18 @@ y = 0 } -- constants - o.acc = 90 + o.acc = 45 o.friction = 20 o.gravity = 9.81 o.climbHeight = 4 o.jumpForce = 5 o.maxSpeed = 600 - o.jumpMaxSpeed = 9.5 + o.jumpMaxSpeed = 9.5 o.zeroSpeed = 0.001 -- bools o.isJumping = false o.isOnGround = 0 - o.coyoteValue = 10 + o.coyoteValue = 5 o.isOnLadder = false o.canJump = true o.canFall = true @@ -147,7 +147,7 @@ function Player:DoPhysics() self.vel.y = 0 self.vel.x = 0 - self.pos.y = self.pos.y - 4*game.scale * current_dt + self.pos.y = self.pos.y - 4 * current_dt self.canFall = false self.canJump = false @@ -159,11 +159,11 @@ function Player:DoPhysics() -- checks for slopes for i = 1, self.climbHeight do - if not isThereCollisionAt(self.pos.x + self.vel.x, self.pos.y - i * game.scale) + if not isThereCollisionAt(self.pos.x + self.vel.x, self.pos.y - i) and self.isOnGround > 0 then self.pos.x = self.pos.x + self.vel.x * 4/5 - self.pos.y = self.pos.y - i * game.scale + self.pos.y = self.pos.y - i self.canFriction = false break diff --git a/data/scripts/entity.lua b/data/scripts/entity.lua index b5c25cd..ea87e94 100644 --- a/data/scripts/entity.lua +++ b/data/scripts/entity.lua @@ -28,8 +28,8 @@ function Entity: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)) * game.scale - local origin_compensation_y = - ( (self.sprite_offset.x) * math.sin(self.sprite_rotation) + (self.sprite_offset.y) * math.cos(self.sprite_rotation)) * game.scale + 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( @@ -37,8 +37,8 @@ function Entity:Draw() relative_position_x + origin_compensation_x * dimensions_x, relative_position_y + origin_compensation_y * dimensions_y, self.sprite_rotation, - game.scale * self.sprite_scale.x * self.sprite_flip.x, - game.scale * self.sprite_scale.y * self.sprite_flip.y + 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) @@ -78,8 +78,8 @@ function DrawAnimationFrame(animation, frame, x, y, rotate, sx, sy) x - Camera.pos.x, y - Camera.pos.y, rotate, - game.scale * sx, - game.scale * sy + sx, + sy ) end @@ -107,8 +107,8 @@ function DrawAnimation(animation, x, y, rotate, sx, sy) x - Camera.pos.x, y - Camera.pos.y, rotate, - game.scale * sx, - game.scale * sy + sx, + sy ) end diff --git a/data/scripts/enums.lua b/data/scripts/enums.lua index f5bfc0b..f7272f5 100644 --- a/data/scripts/enums.lua +++ b/data/scripts/enums.lua @@ -64,6 +64,6 @@ levelProperties = { tileProperties = { width = 16, height = 16, - scale = game.scale, + scale = 1, tileset = love.graphics.newImage("assets/terrain/tileset.png") } diff --git a/main.lua b/main.lua index 1420dd3..63c3406 100644 --- a/main.lua +++ b/main.lua @@ -11,7 +11,7 @@ function love.load() love.keyboard.setKeyRepeat(true) love.graphics.setDefaultFilter("nearest") -- good pixel game = { - scale = 1, + scale = 2, width = love.graphics.getWidth(), height = love.graphics.getHeight(), paused = false @@ -26,8 +26,8 @@ function love.load() main_Player = Player:New(1220,220) LoadedEntities = {} table.insert(LoadedEntities,main_Player) - table.insert(LoadedEntities,Kupo:New(700,200)) - table.insert(LoadedEntities,Kupo:New(500,300)) + table.insert(LoadedEntities,Kupo:New(450,100)) + table.insert(LoadedEntities,Kupo:New(250,150)) main_Player.sprite = love.graphics.newImage("assets/characters/nancy/idle1.png") main_Player:LoadAnimation(animation.nancy.idle) end @@ -102,6 +102,8 @@ function love.keypressed(key) end function love.draw() + -- GAME WORLD + love.graphics.scale(game.scale,game.scale) LevelDisplayBackground() for _, enty in pairs(LoadedEntities) do enty:HandleAnimation() @@ -112,11 +114,14 @@ function love.draw() -- Save color local pcr, pcg, pcb, pca = love.graphics.getColor() + + -- HUD + love.graphics.scale(1,1) -- Scale control if game.height > game.width then - textScale = game.height/480 + textScale = game.height/480/2 else - textScale = game.width/640 + textScale = game.width/640/2 end --debug