From 43a33e6dfcef6cd05e4a41841ca9471a04195e8e Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Fri, 2 Apr 2021 23:20:36 +0300 Subject: [PATCH] More character animation --- Player.py | 26 +++++++++++++++++++------- data/player.xcf | Bin 7110 -> 9062 bytes data/playerCrouch1.png | Bin 0 -> 439 bytes data/playerCrouch2.png | Bin 0 -> 451 bytes 4 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 data/playerCrouch1.png create mode 100644 data/playerCrouch2.png diff --git a/Player.py b/Player.py index 7488748..7d977be 100644 --- a/Player.py +++ b/Player.py @@ -32,7 +32,13 @@ class Player(pygame.sprite.Sprite): ) self.currentDownImage = 0 - for array in (self.walkImages, self.upImages, self.downImages): + self.crouchImages = ( + pygame.transform.scale(pygame.image.load(os.path.join(self.imgDir, 'playerCrouch1.png')).convert(), (64, 64)), + pygame.transform.scale(pygame.image.load(os.path.join(self.imgDir, 'playerCrouch2.png')).convert(), (64, 64)), + ) + self.currentCrouchImage = 0 + + for array in (self.walkImages, self.upImages, self.downImages, self.crouchImages): for image in array: image.set_colorkey((255,0,255)) @@ -58,14 +64,14 @@ class Player(pygame.sprite.Sprite): def crouch(self): if not self.isCrouching: self.isCrouching = True - self.rect = self.rect.inflate(0, -25) + self.rect = self.rect.inflate(0, -32) # self.image.set_clip((50, 50)) def standup(self): if self.isCrouching: self.isCrouching = False - self.rect = self.rect.inflate(0, 25) + self.rect = self.rect.inflate(0, 32) def updateSpeed(self, newGameSpeed): self.gameSpeed = newGameSpeed @@ -128,10 +134,16 @@ class Player(pygame.sprite.Sprite): self.updateCount += 1 if self.updateCount == 15: if self.isOnFloor: - self.currentWalkImage += 1 - if self.currentWalkImage >= len(self.walkImages): - self.currentWalkImage = 0 - self.image = self.walkImages[self.currentWalkImage] + if self.isCrouching: + self.currentCrouchImage += 1 + if self.currentCrouchImage >= len(self.crouchImages): + self.currentCrouchImage = 0 + self.image = self.crouchImages[self.currentCrouchImage] + else: + self.currentWalkImage += 1 + if self.currentWalkImage >= len(self.walkImages): + self.currentWalkImage = 0 + self.image = self.walkImages[self.currentWalkImage] elif self.isJumping: self.currentUpImage += 1 if self.currentUpImage >= len(self.upImages): diff --git a/data/player.xcf b/data/player.xcf index c028ccab74028747345186cc74206fcb8640eb53..3a2cebe29f4c8a63b289df89ec34dbcdcd64d11d 100644 GIT binary patch delta 1431 zcmX?R{>*KHlV~mj1A`a?0|N^K0|O%i1A{071Ec%Ia91WqhKci3>h%o3K*0cmVF(q` z)a24gN>9$u$uCmS08_d}=}CzSFnK%-kk*Rgg2d#^ymSRam=&5_8kI0XPPph~CPpPm zn3Y@_mHBCD#i=DQcTLu3RIg`ZV*mqIO)$m4;Rd0(UqWd9eh4k>0HMVmL1?M-5L&JT zLc>U<92kp%fk6O@L182ikds)MTBP7ylwX>hpBwHz%bcSM1_%YGPlHPSEwBz zDG+7`g)xW$!Z5QyVa~w7zzjA3BmuPpBo7kzn*3WL&5wbB#pfS`1oQu23_c8|rV>mh ze^AaHHzCcV%0Gr0b@D*%U0N5-R28a@nQ9KO)C0HhJLfPMC#k>Lv{ zJQz$Qz!ca^ps-g1dr^YjQD@BjD$EyX0ji%`DPWNKTJ&07r?U8Z@{uLEKpg_&5uPNF)_)Pf@S3= zf@S4bZvHKCn#moSgd`Xk82E!zb5fH_GV}8kd=rbaK`{9$u$uCmS08_d}=}CzSh7bsnt|%@@OwPMOMN$2V zcRmvn=UcD}E>5rtE=432UYn;0E@5Kgh1kdov5^;Uxa4Xi>m4y0mpgUo9tCW-T48Hv|m8A;~N3*}EU0RRz=Z>|6U diff --git a/data/playerCrouch1.png b/data/playerCrouch1.png new file mode 100644 index 0000000000000000000000000000000000000000..7f17dcfeee4bf86ca34f049dbdd86c96ad187877 GIT binary patch literal 439 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^J-la77pIA_fKq z&H|6fVg?31We{epSZZI!z`(#>;_2(k{*;ADM98di>jE1F1_sFz*N775{M_8syb=cI zqSVBa)D(sC%#sWRcTeAd@J2py1_nlXPZ!4!i_=RdtaBf%NIGSaq6}tX?^~POmf*dTqK6_UtaLH!xw{{t3C+_5i`Rm^w z`Cs$%$8F}reiQPNwri|?SaFhZ!77n{{^q}Yy3-iU;`MLl-8=dD&yDQMD$IB7_CK7% zydXEatnT{FFoWlF7?-V5-yLyQ$bK8I@nM~A)s;_2(k{*;ADM3`ko<$=Ep3=EPbt`Q~9`MJ5Nc_j?a zMX8A;sVNHOnI#zt?w-B@;f;La3=E9go-U3d7N?g^()DL{6lj~DS)kJ3;3J%+z2WV@ zMlBcD(9+ua^I3mXRXT(vc)lG_+MxQfi%Vgp+>wpP-`$|erqntB_|mk zA7v3t+%qHP8;55+L#GzUp%PQ;h*k6A%5s+K7diZSee-Cg{*qm_Z}==(kBIRx?z6Mo z{QLIb)9>XZt~uOle7nS^J?e?bh3))H^#ek;CEku*^0TV5;-Dq_fzNk^!_BYzUif`D z`|;!pu{yz_#php9^^ZWK4a!G(Klx?teDMgX_u@&aVt)U|?YIboFyt=akR{0RDHh A;{X5v literal 0 HcmV?d00001