From 159ded5c2cce3c8c670764d4f0de52a8f1718168 Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Fri, 2 Apr 2021 15:21:36 +0300 Subject: [PATCH] Sprite and animation test --- Player.py | 28 ++++++++++++++++++++++++++-- data/player.xcf | Bin 0 -> 3338 bytes data/player1.png | Bin 0 -> 1094 bytes data/player2.png | Bin 0 -> 1053 bytes data/player3.png | Bin 0 -> 1083 bytes 5 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 data/player.xcf create mode 100644 data/player1.png create mode 100644 data/player2.png create mode 100644 data/player3.png diff --git a/Player.py b/Player.py index c7016f8..4072adb 100644 --- a/Player.py +++ b/Player.py @@ -5,13 +5,28 @@ Player entity class import pygame import math +import os class Player(pygame.sprite.Sprite): def __init__(self): + self.imgDir = os.path.join(os.path.dirname(__file__), 'data') + + self.walkImages = ( + pygame.image.load(os.path.join(self.imgDir, 'player1.png')).convert(), + pygame.image.load(os.path.join(self.imgDir, 'player2.png')).convert(), + pygame.image.load(os.path.join(self.imgDir, 'player3.png')).convert(), + pygame.image.load(os.path.join(self.imgDir, 'player2.png')).convert(), + ) + self.currentWalkImage = 0 + + for image in self.walkImages: + image.set_colorkey((255,0,255)) + pygame.sprite.Sprite.__init__(self) - self.image = pygame.Surface((50, 75)) - self.image.fill((153, 151, 0)) + self.image = self.walkImages[self.currentWalkImage] + # self.image = pygame.Surface((50, 75)) + # self.image.fill((153, 151, 0)) self.rect = self.image.get_rect() self.rect.center = (100, 400) self.speed = 0.0 @@ -24,6 +39,7 @@ class Player(pygame.sprite.Sprite): self.buttonsJump = (pygame.K_UP, pygame.K_SPACE,) self.buttonsCrouch = (pygame.K_DOWN,) self.gameSpeed = 1 + self.updateCount = 0 def crouch(self): @@ -56,6 +72,14 @@ class Player(pygame.sprite.Sprite): def update(self): + self.updateCount += 1 + if self.updateCount == 15: + self.currentWalkImage += 1 + if self.currentWalkImage >= len(self.walkImages): + self.currentWalkImage = 0 + self.image = self.walkImages[self.currentWalkImage] + self.updateCount = 0 + if not self.speed: self.rect.y += 1 if not self.isDownJump: diff --git a/data/player.xcf b/data/player.xcf new file mode 100644 index 0000000000000000000000000000000000000000..57e15a15eff6e1fd00d9486444c397c2ef46f7bc GIT binary patch literal 3338 zcmYe#%q>u;NKR8IGcYt{U|?VnU|?X705KRC7^X2WFbFa*FfcMQFfa%+Ffed9Ph(&J zVFm^U5e5bZ76t|eNd^W6F(@0PPLzRx;UfbB124#E-Q@h-+|;}hkbxjcA?Kph#FEq$ zh4Rdj3ZhBE>3P=p3dX+|TNo7u|LUDdhW{M`4Mp}AueolUo zf(DqWWUh0vT_5E_Mqg*3>goB=tBm8nGv z#vm1J(9rzPz`&pgV%s->gc&$MY%q&~ffI?Xgv6FXVuLIN#Sln~0+Kj45}OB!&5Ok5 z2gNo>BNVekjKLeWyi_b5H|Nj}()L2c}{xdTCS7S9{R{IZ@WLINi`1PLwB+cscpMm-R z7X}}O{|r7p3?R(>|1*P{4+Db`mR9poV_+~*V*qo1FsOknQ)6H<0crlvz@+xq zgaOQB{m;bkUya2C;#d~7{|p@eSr{0>j{m`+2C~tIf&Kq?2-C!bf%X4i1~mre|9=?} z>^~rjS^hIJfJ|fjuf)KT&B?%&{hxs;n}gv;b^^nHhJ@^Fb_T|Tp8*U331Bu`0!ubC z17iSd0?U79hW`Pq3Csa34D10M46NC#4F9v47#On|85px!8NLQ&GcY7DWM?xZB(O4k z3&;*&U`Pl6bAARS1TX{yFfb*sGB5@FO<-VPO5kMpAHb5p$-ol8$H15k;xRM)htiA* z>>#Tc{zGZTY#~I1g+aoADeON32!kRl%!%PYgHu=-IKrHqj2VoboWjDO5$41a297Xe zV^$|{gc-9sF&jf8%oq`2VW2So!Vt#rpCK%a0fa#jW*o-A-~{40Ie{b0ILw%V!O55b z%>BV&46@9afyoJ^`9A}b@n0tfFb@>O|BYFkAdY1*hDI3J@jn=hK@k=PjxaFO$q5`` z#^4A;u>XK8MnqUWV*@B}z|u2vW;X(*YfuIOWdM+(p`O`c^#;ga3=9lxX;21;f&~D` zuOPW5kRTMpIKx%}33I!33P2K}Ca_iJA!mNCZ?A zfHFIy2@}IVPzw}?8UFe(FmQu2H4ivb!$@$Z=K0UWz)IT;{WBmtAb}wPoQJ;! zBm^WdfVkic&6vQ%@E<8d^Dz9+=41FDz{l`E0fHH`#SoDI&I6FlOZN=?gTXk=*onaj zoJT>CVC-b`7aR#;kVr6Q00qAjoCIf7NF?CNq~Jyo z6Esm0%BIZYp4D%Dzsa&A;9h41k1VS?_mp)7awSmax4ig{9n%RWG2T~P( z0cTcFZUxuOUqCgpi3x+68Urk|GMO-9W>!|U{|w+d#)p-G^*gs{5pPd-OAQkc#aP|h}Z*cwm z1ynyfIWZU;Gr+PplM^Fm_GUGPMq3y(+QPumW^4?OHYZS({{Jrni1&xV7!qy9kh&Vw PT8_@wOXPUhO$rg{=dM}dD5dt z8au>f{zR^^+F|kf)dMY#CVPdvJijizphxAN3tfBI%fElP_kG`;T6T_JuFGpKNGy1{ zZKj{vk(|6xp8ZNJjDk_=DQS|$lcqGi|FO%x;eC1Gyr=QspT7wGEXK^F^ijvyXLdz% zMb>3Ai}%9rk)C0l=R4hfcPV^SzAoB--$FcAtRn5onI+FV7avL5*gTalO*L3~o=V@! zS$;pAt|d?XESA1DD0yx5Cvmq=zfKul&*W3=bk%We;$StM64=;l@zzRH>{7|R4j?L3w6B*H;dD&;!=Klc6A*`jL4_Ac>YdQnw4r$13)54XwdzR$I9EY1om{NRas znOnb=(Wib=Tz>XOxm5PgoeYG_RrAIbn&%&DVDC-@SWtd%x-0e}5TFq>B1vA5Se|U|?WN@^*J&_|L$= z@Lx`KavcK$180FpWHAGSo-znCRxGtIV_;xlFY)wsWq-=T#3Q847Q0QJfq_A?#5JPC zIX^cyHLrxhxhOTUBsE2$JhLQ2!QIn0AiR-JoPmK!*3-o?q~g}wIeWdB9YtExkN8~> z5o=odfcu5;62FP3ZrywCnVYp*WZN&MS>h2JM09jQHpIQQ{0HU}>KdGv1C3*IB4cUGz^Ffy3P z1!gmTWmx}AKAhjxKK{1w1O|o^%rzfB{UYwU$}FRS5{p7_I>wXbME}huEM~O)%YdGA)EQH{Ce3}oI4k8WfNjxkbCf% z;dTArin5@uZSn8sM=&xl9N@D(u!=RS`oQ_?<=39?K08g6fq}u|7h{xt^t=hHFUI&@ z=67IX`0$ibaf$TXFnPQ3X)~hFKR?F_cAHbs;ic)ts}f&-j|3UDMef4h{X1|?;-E{^bJf53=O*~4_ujbRc_Ha$rAab zmw!1u7#Monf9`46D(`UES~{dRd&M*N>d7xTl^7XBzBXKxo^zh>`aS&yb_GTTpJ?ui z^yaX2=Rx`QU%CB(JLVO2hC8;UHG%_ozwLrAGnMY`IrPf?g-r8J1tA89yEYEhCD$sM z?rlh$dQVPOn}LBr<27T{{pjCcv*$CLSnWSBQ(S?O;Q^!HSS$~0Zk8#5zZZ!r51_n=8KbLh*2~7ZmgU(3+ literal 0 HcmV?d00001 diff --git a/data/player2.png b/data/player2.png new file mode 100644 index 0000000000000000000000000000000000000000..65d44c5a6e0e5c861ae88748fc26e5c08c87c3be GIT binary patch literal 1053 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU`XI#V_;xdd$i;Q0|R4grn7T^r?ay{K~a8M zW=<*tgT}<#iMAex9VFWBFPqvGBJ)P!(S(IokpiNE>T8_@wOXPUhO$rg{=dM}dD5dt z8au>f{zR^^+F|kf)dMY#CVPdvJijizphxAN3tfBI%fElP_kG`;T6T_JuFGpKNGy1{ zZKj{vk(|6xp8ZNJjDk_=DQS|$lcqGi|FO%x;eC1Gyr=QspT7wGEXK^F^ijvyXLdz% zMb>3Ai}%9rk)C0l=R4hfcPV^SzAoB--$FcAtRn5onI+FV7avL5*gTalO*L3~o=V@! zS$;pAt|d?XESA1DD0yx5Cvmq=zfKul&*W3=bk%We;$StM64=;l@zzRH>{7|R4j?L3w6B*H;dD&;!=Klc6A*`jL4_Ac>YdQnw4r$13)54XwdzR$I9EY1om{NRas znOnb=(Wib=Tz>XOxm5PgoeYG_RrAIbn&%&DVDC-@SWtd%x-0e}5TFq>B1vA5Se|U|?WN@^*J&_|L$= z@Lx`KavcK$180FpWHAGSo-znCRxGtIV_;xlFY)wsWq-=T#3Q87|N55+0|SF(iEBiO zbAE1aYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI0FOY7f%<*kcwMx=NS4Ob`Wqa7nBuR zvfu$r41=G8??f$A+vlFXS*t|06fizuny4{RLxZ97)|Gz~%S@!+-#YQWT+DOByl?gA z&)ql|`)Zd-vh0$X+ziF+1sSyp%VWN>?7Fg%iGiVkGqvIA&)2uFE>NFvz4D6B0VakS zJ2$;!HDTT}uRh{F|F6HdW;U=gILJP@eEfa-`yZ*FuY6y#MZD-;`l+X9L*M^+^J2>k z$*r$hbQlfq|jm3v)FnK#G@1A$h7Z)?>FfhDo2>J5i!e+~_8@~Pr8Rc-B=f>XsJB=Ju z@7gC+#uz(27pR(JzOm;J6T^&Zwl{CTZ-4YL^{3U^nTaP)bzIx*4mLvM(}wU{#v$jo zp96bE;aQ^hwBvhk?KYn|PeF{q!R6s^=8&!L#TA%0FfiP@#(3{$!j`;%mw)D`w?PEn z$(QV_KQK%5(;EXZh67uEG2YwdXnb&%@&`Ua9fpSga~Y>)+4~;=Wo`x#NZ3_+;KqC2 tBvu9nhT79x>$dMGzvjV~z{n7CRsP1IjhpHin)N~IJYD@<);T3K0RVFl&!qqW literal 0 HcmV?d00001 diff --git a/data/player3.png b/data/player3.png new file mode 100644 index 0000000000000000000000000000000000000000..f53bd49949899c6c3decd8b4d3e765bf15551373 GIT binary patch literal 1083 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU`XI#V_;xdd$i;Q0|R4grn7T^r?ay{K~a8M zW=<*tgT}<#iMAex9VFWBFPqvGBJ)P!(S(IokpiNE>T8_@wOXPUhO$rg{=dM}dD5dt z8au>f{zR^^+F|kf)dMY#CVPdvJijizphxAN3tfBI%fElP_kG`;T6T_JuFGpKNGy1{ zZKj{vk(|6xp8ZNJjDk_=DQS|$lcqGi|FO%x;eC1Gyr=QspT7wGEXK^F^ijvyXLdz% zMb>3Ai}%9rk)C0l=R4hfcPV^SzAoB--$FcAtRn5onI+FV7avL5*gTalO*L3~o=V@! zS$;pAt|d?XESA1DD0yx5Cvmq=zfKul&*W3=bk%We;$StM64=;l@zzRH>{7|R4j?L3w6B*H;dD&;!=Klc6A*`jL4_Ac>YdQnw4r$13)54XwdzR$I9EY1om{NRas znOnb=(Wib=Tz>XOxm5PgoeYG_RrAIbn&%&DVDC-@SWtd%x-0e}5TFq>B1vA5Se|U|?WN@^*J&_|L$= z@Lx`KavcK$180FpWHAGSo-znCRxGtIV_;xlFY)wsWq-=T#3RgjO6}M#1_lPn64!_l z=ltB<)VvY~=c3falGGH1^30M91$R&1fbd2>aRvq^Ax{^_kcwMx=h*rkF%W6Vb!lf2 z5t-A#eSmX?=C(!4p4&uEo|VNNwS%FcajM2d4Go6QTUTa!)KzVotMkb`c8jN(RHfSc z^PQSYM68a*y^s;OV9ogZ8mHlrW&9JIl2{!WSl&!vkC?T8*WPu%7z$;@zp|(>FwRxZ z(pw<+;Od{lzxKWQy4IGF(}AI|fnR?A{Kb!_Kg?Vcsi}X&;@gz&*{3gle0k9GnsL-| zP7emA4-E64iKegqyyn^0^4I_3{596vD==~>h@be*YGQujdqwsN^(jupyebTg6%FT^ z*L?r=@MGX*_PTx5DIj;~ykHE|yKsxSZr{G{b@%h)A{hl382hRko}HhjJ|$~Q$mJ`{ z6Bt;2JZcd5)LOQhFaDOd&e`YQzgavOm^zr9!VYh(E?$-R`af9P=c)tW{+@lx$(3Dq z;L?t&mT!t*EcjC8T3Hkpl=IJc@>}}i53T?6!p;Yrjg~Vk|JxwSz$h@GpIIlu*qQ6C z^onO&mzjV6!zk3ya4zwk_=abUBDbWsJYrh^OnvjoD=ZTkSVF!woa8*W_wd^1tREOu z7#Kf4W4d>5!J=aJ(=wo`HdZ!PC{xWt~$(69Bz0(klP} literal 0 HcmV?d00001