From 33f9bc62a47e7de6ed2c827fa49245cefe15016a Mon Sep 17 00:00:00 2001 From: "theo@manjaro" Date: Thu, 18 Nov 2021 08:26:30 +0100 Subject: [PATCH] Better Fastfall --- gamedata/assets/player/landing.png | Bin 815 -> 10104 bytes gamedata/objects/combat/player.py | 41 +++++++++++++++++++---------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/gamedata/assets/player/landing.png b/gamedata/assets/player/landing.png index 83bf2e7c1221075f73631a6cdda509b601d00d40..3db55977d3da4e43e105a9133f19fb0d8af2948f 100644 GIT binary patch literal 10104 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 delta 534 zcmV+x0_pwuPOk=#BO?KXX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKpe$iQ;S~}k&}BD zRew8Q(Tf3u5J0!gEMrcR67U>f_we!cF3PjK&;2?2)U3q-pGZ8*4AUmwAfDc|4bJ<- zVOEe;;&b9LlP*a7$aTf#H_rJ63p_Jyrjql-VPY}g#!4Hrf~gTt5l2)_r+gvpvdVdj zvsS9G<~{ifgIRrLnd>x%5yv8yAVGwJ3V(_y!A6u;ofHd6+K+kohZ=r~Tnf30VB}ap z85-n3_cmMDK{iPO(B;9-p}ZpGC=4S=vi}nYwqLp0Z36-i5uYH5R=Xr z5E=!8a(i1S*GK>W00v@9M??Vi0PO&}^BH|JlO84@2oV!5AUh!yx06ODCkz1xNklt3PX^^qPqJOei0ry+_vfKV-Ywrw&;V9*9tMx%`S7r0!KUcZ zy2A|ET+YD2z@Vj=#DFgaU^P%K$d+M+b0dSPi5Z4#2_+{+^hl{wl1EX1Y$!T7edZKH z)4hi%Nr#0{7@auie8;DPyfq{Vm Y04pkZK(<0 gravdir = self.gravityway>0 - if verdir != gravdir: - self.sprite=self.spritejumping + if not self.fastfall: + if verdir != gravdir: + self.sprite=self.spritejumping + else: + self.sprite=self.spritefalling else: - self.sprite=self.spritefalling + self.sprite = self.spritelanding # Adding knockback self.horspd+=self.horkb @@ -203,9 +211,11 @@ class Player(Movable): falled = True if not falled: # Check for fastfall if self.canfastfall and not self.onground: - self.verspd = self.maxgravity/5*self.gravityway + self.verspd = self.maxgravity/5 + if self.leaptimer>0: + self.verspd*=self.gravityway self.canfastfall = False - self.fastfall = True + self.fastfall = self.gravityway else: self.fastfall = False @@ -217,5 +227,8 @@ class Player(Movable): self.game.globals["cameray"] = self.rect.center[1]-self.game.globals["camerah"]/2 def draw(self): - sprite = self.game.pygame.transform.flip(self.sprite,self.flipx,self.gravityway<0 and not self.leaptimer<0) + flipy = (self.gravityway<0 and not self.leaptimer<0) + if self.fastfall: + flipy = self.fastfall<0 + sprite = self.game.pygame.transform.flip(self.sprite,self.flipx,flipy) self.game.window.blit(sprite,[self.rect[0]-self.game.globals["camerax"],self.rect[1]-self.game.globals["cameray"]])