From fc4895fc4ebd45fd2a2e7381d55089d77ddd035f Mon Sep 17 00:00:00 2001 From: Darek Golomski Date: Fri, 9 Apr 2021 18:31:38 +0200 Subject: [PATCH 1/5] add agent rotate --- src/agent.py | 1 + src/game_ui.py | 10 +++++++++- src/main.py | 16 ++++++++-------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/agent.py b/src/agent.py index 03801f4..25156b7 100644 --- a/src/agent.py +++ b/src/agent.py @@ -5,5 +5,6 @@ class Agent: def __init__(self, x: int = 0, y: int = 0): self.name = "Kapitan Bomba" self.img = SAPPER_IDLE + self.dir = 1 self.x = x self.y = y diff --git a/src/game_ui.py b/src/game_ui.py index fa09081..8768379 100644 --- a/src/game_ui.py +++ b/src/game_ui.py @@ -12,7 +12,10 @@ class GameUi: self.clock = pg.time.Clock() self.screen = pg.display.set_mode((WIDTH, HEIGHT)) - def move(self, coord: str, shift: int): + def move(self): + coord = 'x' if self.agent.dir in (1, 3) else 'y' + shift = -1 if self.agent.dir in (2, 3) else 1 + # print(coord, shift) for x in range(8): setattr( self.agent, @@ -31,3 +34,8 @@ class GameUi: self.screen.blit(IMAGES[self.env.field[y][x].number].img, (x * 80, y * 80)) self.screen.blit(self.agent.img, (self.agent.x * 80, self.agent.y * 80)) pg.display.update() + + def rotate(self, dir): + self.agent.dir = (self.agent.dir + dir) % 4 + print(self.agent.dir) + diff --git a/src/main.py b/src/main.py index 5149a0d..c30dee4 100644 --- a/src/main.py +++ b/src/main.py @@ -23,17 +23,17 @@ def main(): while running: for event in pg.event.get(): + # print(agent.x*80) if event.type == pg.QUIT: running = False elif event.type == pg.KEYDOWN: - if (event.key == pg.K_d or event.key == pg.K_RIGHT) and agent.x*80 < 700: - game_ui.move('x', 1) - elif (event.key == pg.K_a or event.key == pg.K_LEFT) and agent.x*80 > 5: - game_ui.move('x', -1) - elif (event.key == pg.K_s or event.key == pg.K_DOWN) and agent.y*80 < 700: - game_ui.move('y', 1) - elif (event.key == pg.K_w or event.key == pg.K_UP) and agent.y*80 > 0: - game_ui.move('y', -1) + if (event.key == pg.K_d or event.key == pg.K_RIGHT): + game_ui.rotate(1) + elif (event.key == pg.K_a or event.key == pg.K_LEFT): + game_ui.rotate(-1) + elif (event.key == pg.K_w or event.key == pg.K_UP and ((agent.dir == 1 and agent.x*80 < 700) or (agent.dir == 3 and agent.x*80 > 5) or + (agent.dir == 2 and agent.y*80 > 0) or (agent.dir == 0 and agent.y*80 < 700))): + game_ui.move() elif event.key == pg.K_SPACE: if env.field[agent.y][agent.x].mine: env.field[agent.y][agent.x] = factory.create_tile( -- 2.20.1 From 3d8ff6222ca1b9e27cad5893b565f1dde8e4b0ea Mon Sep 17 00:00:00 2001 From: Darek Golomski Date: Fri, 9 Apr 2021 18:37:42 +0200 Subject: [PATCH 2/5] add comment to agent move --- src/main.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main.py b/src/main.py index c30dee4..6f1b6c4 100644 --- a/src/main.py +++ b/src/main.py @@ -21,6 +21,12 @@ def main(): running = True + #ruchy agenta: + #1 - right + #2 - up + #3 - left + #4 - down + while running: for event in pg.event.get(): # print(agent.x*80) -- 2.20.1 From 19009547087d372d21276b6250dad61c96a3a94c Mon Sep 17 00:00:00 2001 From: Darek Golomski Date: Fri, 9 Apr 2021 18:47:12 +0200 Subject: [PATCH 3/5] add agent rotate image --- images/sapper_idle/agent0.png | Bin 0 -> 13153 bytes images/sapper_idle/agent1.png | Bin 0 -> 12469 bytes images/sapper_idle/{agent.png => agent2.png} | Bin images/sapper_idle/agent3.png | Bin 0 -> 13093 bytes src/main.py | 6 +++--- 5 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 images/sapper_idle/agent0.png create mode 100644 images/sapper_idle/agent1.png rename images/sapper_idle/{agent.png => agent2.png} (100%) create mode 100644 images/sapper_idle/agent3.png diff --git a/images/sapper_idle/agent0.png b/images/sapper_idle/agent0.png new file mode 100644 index 0000000000000000000000000000000000000000..c3e84ad7b0d218f6f799df70ded644afe52a708f GIT binary patch literal 13153 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 literal 0 HcmV?d00001 diff --git a/images/sapper_idle/agent1.png b/images/sapper_idle/agent1.png new file mode 100644 index 0000000000000000000000000000000000000000..c634870b4ec6f9e7f50ed142fc3c78aa86811099 GIT binary patch literal 12469 zcmV;mFiOvfP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+P#`*l3Y1iL&P9&z%d`_I4meg~i5@At2K-{S8- zyzYL!5qT-`m_C2@`hETIdgSx*`}+EhGkLxIGSE2RH|&pZ%SCx=g;5vy>cDB{knwxV+H;DO8@+K`ju0QwbaluzjO4h)xq-~eQv~UYod3> z@nU43asK?b`|;7poZ?9#`S-hjW|{Oqq{(A`zXzY=U7qJu_#IPz@%4_BF$HEmzOg<2 zXEgs1n;(z=;Gg@QWqr%x59$8->{|xzFK_&*4C?v5p8k}*`t$LoE zsO6s*j(?a@38DRA(fx1#@7?|0^I6@@l_l5jqJFF-xR=ViO-1m&R{3fCFFbGWXYkW$ zmqm?jzr69Y!U&NR-;l!&Gh7$Wd$Ph}jyay#c#Lt8b-mWf#fU2@=~+MF#+F9flt4_2 zQc1iT?{(j~gm>NXuD3$x$~*AU7#J+@m4Er;e&<8~?B`zfQV8zbGvSlqs5WF8%A9`l zF)|YFH>l+W_{Yy53-X)TL<-9bb7z6m+h+(X;cvB-UZNA9D?EOhJGA}zz6Q!%yD*uM zNP({*l~99kF}4s0WG6v0_)c3zBLkt7xS3?kDOGYq6L4wAcUpL#jU|3w2PI!i*3`(& zNRwpcT&SOxJ2f;*D!G(WODnyMGHa^Y(P6c=D!833wcJXpt+n1pn?3d1ORv54-bbG! zjszN)K|78<#+Z|9PDY;9O+G()#iAw4R;*gHZo}rHd{$m%)zwyCW6d3R+Vt_RyY0Tm zo+lhi>Eu(~si&QO#+jE|yXodzZoTdHJMR3MwQpAc^7C(GEqt>UU#9fA_A_g|+S=#Q zy?S8~<&2EQ9LRW61}NyLocSJdj>?>J=0~I}N@S8nx!J+bP-Au}pAgFpKXdoD%>7$= zb2b0dyv5(moKx!lmzjHcbEo{0x4)CME!ti$W1lWmOnsvJc>nYn`xJ{#_v6X`_VNE{ zpix}OBo$Vp&{=l0yi>Y|Y1cpm^6@nvAaRn@+VZ8>V27{gS8JwIh=1Vyd?UdN8;st4OzO19;8c z(uUJ$Y+@RykI?Oqbh6)A0!5NmO;>YRYg0#g)}7`#&{VOrj`(7&MFHo&NZ+bvD1}9B z`IX1&teL`#OnMt-u?IciTXKD0QkhaHXYlDew;#(!_cx^(ZRdVFHIenHabwV9qe8gC z$gNX%d9kSGhSytm7Yvxn+`Y84j9i?3OTNBFD>tUyDNW|=^Fo8He)6bmoMzV=<=n12 zG-oL+jOE9>S8tWq6=Eh>LfKp&M!K^Tk==@F^yV#a*u3mVp?&+M*S0C$iBc}<)GUtW z>tWmNOePv)azcm`j3zlO{+?Lp3&@IQyXe_z?obX4WbJ)m%$@x~)y!i?w#ue))DGza z1us5aL65AXw`sMHCe<|^*Z%Zn0XuG7Ts&7=HssR%+Vd4J+Vo#Nx_|V>v6O43Fxwv$}|1cL|dp=NhJdgYKl}?(i(6gi_BDTs{H~2jmhuQ7NLd5_i z5C-(-DggKLYhL0k6C{3EF9U?{Rmqw$-PS-<1YX-W9Ym_JEP*WvQ z+-=Y47NDT<(VxI1f~6B#v}6J0uHV}ZU(PlmvkNF%h<8*k<}9lv;BdV<501C(hPVO8 zd3%q1uf$Ar*WpqaiUhtCS{7KUgFYbl|f2i|7HW`J*$>*aeQZ1Fxz4~Q1Zjextg z3D3|_(A=f{>rkf0HCQd6$Oek9PdS;mq%zzdG*k4eQ~=k-^|#q@Zv(y zd=oWkIl1E9HfWoHb1viHqA|s4K;kG0B{&!^d^v6?6b2l1o3MtuAlj`Dz)nC?9|8le z;;rQFE={>PuZz#^^*u)FvT2(8jFd(=6|LC-rAr%j(fNcANq0~F00+z6iW9|y?g(N* z)=1{IW(FbYeEQfVXfvef2a_by=~n(~XMDI89P7vkRP9Bbp%X69`sMKLmkOtf8KaPrc?hN4U9?#Q+BDBF%LR@)RIwa&*y_m z`7#_jxgwj949&&U!boRi*m-EGzbQXyQB-@P$~r7^P$Q>x?TE}dkdC!?BoN95i{62e zS|TWP&weOWUhcgSEU3DOEYNk7CJpGIb?X95_!O)`4sDD&g$@&AEC3Hs2~@@GG(={G zTPRAJa*;n2C**+8S|H>`08w~SMwwovJH3T)y21Xlb=u_Spyx2H8=^(L(p7H*-yg0Nquch01M%>fjs0I78K{t}i>7Bw5SMCA(X9NZ) z%)1E#P$s554Q;VbkN|8))e;&62z@sM>WD`8!LJ8Whxs!Z%AoHV$TIkqaAYAE9*e50 z5F}Q%$$M-XzXnAPUxcnATCK&%7pt%sF9h2n?6@RYg>wj!KOUMaP@A(S!^2T8zX(F6 z6nmtoA#Ef>Wjc|L13rXLi%+@*9ZA`SIO zl{I2A>C;S`BE9g^1GU4VP}{5pf{asg*o4~=bse+2C+~eRFv@;#xMZlB(6dbE2qMNB@)xq7Ufva#sPY6f8$F&s^^|^^4(ETzwu~4$IM(8X=0Msu z07(lHahqA@bj&eHJPMU@0`xMM)NX+1H<%T*Mbc57ckkFlW(`Gx!X-litvR~TJ;Z?9 zbwM;whz2xPp;D?6D4~>QSUMm0wFH zCF1gB@*)PG22wqA9&jqQEDs;`j{HYM5C!utb#*}QxKSuO?&0f} zc$H4;Q9X!;jGRHQ;44+N+SnyV@%@QrK~{i8RIPkG3{BY@q@lqQo&bcPEkB=~2!zr* zbh>3^acK@P6x0!prWb9Zd&M;SeTC6jfC-M7=*AU7Edgui4ag>0Koazjl6Y-1r`0@# zKS5WV+Q8BxdBrF(g^d;cG8ZJBDLbVaS;ty>|K{Dv@R;JON@$7>@ zHx)2$KSSl;f&t|o72~R~N_jVUdXp=S5f^`|q>%ZQy5==arHPS$;UkH{!aWv;y?C)MrEX;70;B3+dND z!zHKKRbLv%*EbI4hHQuivoa#QD1w47!XzkFYyQi@Tg~{f&qXK>3pt}2nNoJ zFelZNkq*#sx?xD~1bvfj_&nmS@v(?M*$G1cCMjUrG~Et|Tri#bO$U+9v@`STA|epd zXilQ7EgDD>x589$+*BzpBLT14(BM;@L_q{N7{uFwO0s%%j*bDySAGpCI1|3(+=3E~ zpgoc^bV{E>X_G6GW}U!hiXT2a>7ddE-=IRS`iH6-+Vh`);E{`>1go?~)xqX_ z1@I^M_?-Yc_u0pQDyg8Ym$Awh@E^hoZE!8>P(|3nix1uq1+Xl_0Pl3N0sz4ndYv>V zR}3!fW~Aww-w|^R9ycIUd*dDyuLcTgU)nsz>S70h*AnHl2ZTwuWr;Aptb}XTbqDQP zoz82EggG>WLG4HtGLF@}S$l8Pz(v;(Bke|L^CvF^?N(FTr_9$wYWF)(jd!L6eO=>I z6f<1(l6}xWnf&c>TMGz&^xOdfATVR;r6$o$5Ofh<61FzPtVrZ`q;F8O$PpAW&O#>* z_%%eLT#zgp_3NQ1iUpNpU3nJKM;-oFtTu_9HHL}vgPAG!iia056yXu76@x)Bq0bO9 zNSdT$4x$An6@;eNqRHd#wOh(1(gT|bF~9txantDz4TEGN6GA+=ljeqO0)~7InX}Th z@k-@i@(CDadm5tYsO#>f_CU|x;cCT>>rbkPjBBG=o0Y!aHYmfZl4x2xgu519&y2fx z8CJRU0g!_ug!>mdOWTxl8(bplxgdR0i-n8xPAJ02v?@{+C~fdq^_MTBtrO$op-HGA zkNLc5TiSqQf0VC56CfoPfIwMl|MU!uEM(ZQfS?H1Z0aBEAj(^z5c&T(L<%e@bwu4lkR^~(o=IXNBB&&Ba7>q43X|xUC$54T)sb5?uq8XcvXD(^lgF-Dq9y z5KuxQ|2Q!=+R-Qxi$<~NC`t0XftJ^$hF*tz4rYm%#GYthge?4^1CE2I62v4Z2bqoS z5hxRGJ+1I>YWqFtMdK1g}&x3LK#*pvB~Gkti4? zb5qQb^4)Q#xS1l4U?(00f|I>7VZoHQjhLR}Xd-s;cW? z0%&YThk}TBD z8M-eFo}$5y27!Dov)yP&&^i)}guw6_m1Gskj?6|5dnJ#B4ZIbou3P_#a*g>=U?#r4 zjrdMHk3++;W`MVSkY(}7q+^MzLt#Q&8RqB?hP&}0n+njjN5)UH614}RnHs3YkD@L8 z-v!E_kC+qF86-MOy zhkEp@;brkZ_`e)nDwMg-R7IMfj}woDLx8!e#8JdN(2hEK@0WE4H2Q&K;*dn?>h?^F z;0j{QIuHVk-~Qc6y8EU_Z8pMsIvfQLGNQP3-FAQk*DZ2GZGB51RmXYYVwV zKn^S_UPv8>c09X_myt&a*E^$*ue>?z!Jvt+?xc8me#ax&%D3&Q%^BQE94&&5yA?#g&JE)$Nbt6V$n11 zIgie1#awhFrL~@0hgto3G7~rbj&%5X+6Y8+Bvrvwrq3vTeP(<3hgx-)mD$pc&W?aN z8ap-rZe(e?=LJ1+u0$2XAM{7p(Us2NbaG|C-2CD47P@wfHERVw-d5NA+|+>+>q~KF zfX}&-w?7O~KlhJl1lP;?3~}BN_8FpM&lv(D-CJ@t;&G?SWS~Z=I&9`@T{01TeTv12 z1Hst-+czzl&J!a#yK7Sp!HTBOy8*RW`|7?wyA@g+ygi= zgYK2tuzEm^8!&;VT~WIe18b>`WUpJj!aG2Pk0QW^0HU3)3L9#WC@3@@5?i+8fP}WR z?c^wW-FJsKEjYnW19|Ov5QbOos~z%6x^>%;O)LWRtULGyP#U1jFi@Jsio;-_ix8kF zJG|xAJ!e30-c@HhS#Fpn z@YiC*y*F(y)m#BmkY~em3EDa?d7Tj-136L1nlgqDOM#jf?fQo8GTqlB4~PQ&?1@j+e{MQ-Tk&fEz!x~C?Xgx+?@?`nWGaX`~2!~=9=QZAXyb;>^GF&F}Eo#56B zj+}R14SSptbv7>Ic0~sa|BB-aj;xhPtwFmwJV{Uzq4DwUN(mU9JOEz!=#IfgsyMrQB_u^`_2&#m7quUr`c!rqgDY%_d{VKUMb)P4I zO2Md)=rP?2afd&BB{=v_U}TlIZ7s|HMT+?sWv{!!XT#OT*22;qkAIc_&i_yR!vF6; z;O^F$;(r6LnkEk=U|Poj00D(*LqkwWLqi~Na&Km7Y-Iodc$|HaJxIeq9K~PLiXT)I z>>%Qhp^AeAQ4vR}Vi7EqwnD28CYOFelZGV4#ZhoAIQX$xb#QUk)xlK|1V2FB+?*6$ zq{ROvg%&X$9QWhhy~o`Et|dh*&JNvE0V2XsE=~#9>9%C|}69tZ?4qtd^^+c~AbrU`|^}ah>KcVpu{P z35bwUMG0kCh|sE$Vj@ZVQ4jx+<4=%FCRYiJ91EyGh2;3b|KNAGW`1hYO$tVVju+eh z7y&wWfkw@?zmILZaRT_Cfh(=$uhfCrPtt2GEqny@Z37qAElu77E_Z;zCtWfmNAlAY z@_FF>jJ_!g4BP@eYi@7NeVjf3Y3geE1~@nbMhld^?(y!f_TK(I)9mjDLqc+tySw}Q z00006VoOIv0RI600RN!9r;`8x010qNS#tmYE+YT{E+YYWr9XB6000McNliru3 zEgHkS$vyx802y>eSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{02J9tL_t(| z+U{E4E@QwqncD=yaXcl(7| zyJlm?#uoGQhr-=|`L}Tez<-8KuA8MRFP^=|2fe`G>$iAgU3nn{O_DUe``3P1mMws< zy6ze`f1>xBBIXy8)TYi3u&~fWvpIqDFW8QW_6$^kqVR~S(8{N*WmsmY>XL`3KqMf> zI4JVYSA!oM22@nRjpo$8_T=j4hJU12CpCsYwWRGK6Fd?POjOWN&q`^y?Tgxjw-RWjDrWdIB~p#Aji>ctwp0T31-IV z;>PYH5rYT-6gs-E3Lt~3W=T?enN%?k0LB=29~Bgb2Xc(@?E^(g#PfNh=`!t3NbWQgi0sV0>HeK#;S5W1b;_S z6uSW^5gBXU;}h+v$BB4&KN!G*h;(C&AP}^~ei6h9N)^CZB2_>|0Aq_Yrig6bx@{E^ z|89~bZ!yNyxx89c1w!yoHe2=o@-sj4vkx?z6Y6~+XAM5|p__jtgm5Dpla?2+pFU^P zhX1_joO2F909Dn(`@x>4o{61q7eoYO9B%uIkG$xW`Lwh#7hQbOc_QZR*4pchF`J;; zjUtcqdkY`l{jG1^2VhC1eEpk#_}6N+#!dA`BlR&N8zj`q88MaDT}JsJ@OkH7mCjq?ShASp~i2ngFzeuRfTH8QUYr{hgMkmSXMVmrALFq}5t;<_iDJNn1SSR(gO~vVLI@z@>KLkkq7i^h1g-wf7>D2o(CEw0 z!+_w(7&o0H`f?)N3@kGMFS+z`+wc2-O{6#V`+DKT#01*y890|>$ij$d@lnyViUOlB zc9ArcZ$hUf&u;E`SnD(m-0PBeAwb zL94Vo&h4uoR28-YEX0T+FW^HMDKj9zutBX>195o+YK=C0-Yw7jqBLZu7(f9Vu&ptb zJ+BOv12QA*mK+}i2lqdRR=bUQtv>QRm56Sy3-7}cp@E5!Wf_by00@nG3v;@-<-01>dfhIbd+u3a-(F-{4bw9-V75?I z^m;vb??=Zf%5#WJR_TDj02-|sbQcbRRI9vMs@%&mgunjiS38@xZ2n^aGTEN^x6v=G zc4ig&y$*~uaMmHK)nJVsd0W|@2>QJ)p6hkL%~h8kmJhnPaPvj5HUS7|O|)_R=srLL ztYL^mCBl(!qne$W0B+oPK5aawF*_I(m)6o+Y)!24HmR$139&ICVi;pbGSl;Qz<-{_ z=u0fCB4e#Zy*Y_}&pr+n0kd$7^3<{eaH5@Ebo9vJmKgQIY)xyX(VRlP-h`@Rer^uV zIV5QYV;bP`u>Th(D*}VaRLXXFGbY+o*!`p;Nzx-e6n99(mrB)d83AZ)`nC}HDq=N_ z))X4e77~{rilEtQ!59l`-I%0b_9x7Y7~{Vn&qnmRb08{bD8?AX;BnT>jAr$TFN=it z9XWXLxkn#;WO;d@bLr|3l|%&2C1B%9h5>?gDO3b8Mi3K36}~7CV??XfLa)~y_HP)A z&m{vUK*6LS66}5Y34qFGn+X6#B#A1?;nb46X8ro)i|f|D~@bOoXc5m|i12vHf)yRre-s-Fyq zvAiiN9zay07!AigO!2Ry_&>Yno`)YiBLUp8V>>sREgs}~W|(Ib`UZ*ei$vMEL>9)l zk^>tD=Mp4I`OM7VDhH19U#c27k+Q(3$_UJ1cRZR95rE+_F(Ot#N(>P3u!hyJ6hLtx zgx;+h#o1u^P&Ry+Sgs{ioCcUa6io^d94C1Ll)Kz0W&4@sAQ^ z?)coU7Y)E0-teloiX^|CB#m>jdb53c(mV0#7Sn;_84Xf-I|{ zDDn~bLjXb5vzA_@s%qj`TlY1QfYPz0RXhANJZql|ZWv zkC8K~1*u}8-@}3Z`w(M5dvXeE)~rR6BoK*Eu}}%HEXHuS7SKxpJp3X7sJ|CuI4}C* zvS@8a0;08=gP`i>UgL^dC3aLSPo26gIX;`2p)!c6s|f9We8wOVHGN+N@FdI zHJD0LwA+)5p{x5rX1QXC%IF5SF2vPAF5&z4#-**4OGop=o-5akx7s9KF?RI8+9l)<3 zcB`yS**aH^D-D<|h^gxN%#vl562KAMrSA^W9V;Rtf>H2lwWy?JpQsX-Jc~s1dtC%S zK&_S_hOV#I-A94&URBxs(U0DzX9R%b_NrH3wVpV+8o+4m@XPH=O6!Z`gS2`+w&*yD!vK&YX&q?BDmCZrn8c zgmYL=(8*esaih_6))*?h$HM%4DO)MZifl^ZAkPOleE3k=SXUs?w*jy8c89g=Ho&?J z#-^~&q2JH(^q$=`KX+o?bB7Kce&U4ykWbZ#9(wT02OoOyD{ou1DtV>q z{0IBJx%qB)p-lc&l^hbc#WtI;Wc!v*E^AA{!?+5w*yW(tT|l$p03A$PE3dRxH!jP$ z@P%8pxyK$me6GZ}cJme^Q&X$ZY|WtFXn>euxDp4X1Tu;&R^Cy6HyrAg>_r!4KUkNb z*=#N0*TH)fc^A_&s}O@g(YI-$8^89oWeA{4+$v&zr>eaE$dNfr&1?WM!%|YBKm>_0 zYJ!Iibed+Enx4V*^mG-@&+o5d)kLRhI(Cd=ZvF%emn_FR18ZQ?RM##$54`LpSCOhV znC*I10kK1x)!?etG#ZHqi#k-RHG$1rx1nCE!&(cMq>K4a7lps!?AXUJ6t6%imys4u z94!@~v5H17&`9%?=DT* z29X7kL2uyE?dAv}z&VF3%c==piYzPVEFuBH=THrZKH&KAqh$`Ha@bVl#Ze-(7FUK-I(hL4RSPv-jBX&Ou`nf7V&6o5VI7^ao$sxas_N-E#8>4=>vy@=w`YfAZBV zf(0Ubn`+V`u3t>tK$g|1IZ=*2^Fbd+%t07d5Jkk8`_96_&#LmLy1l~AFZA}s;CHWG zw`%X%8!s%JYfKzCaHv6We$%-Z9DgCfJMA90dCOJ?z*&~*&PTsC+93MTx4hIQu6@3U z`3bfYm%F5OiGt2&Hjo%qB|J;o{puh;A)QX_OVs~+@4cV>#I>)y)*hcb8Z`=bKKcy> zfM2@tCVJ-SXOI^;?)pC;f5HEH>9hd2{jy7wZm(Evn9l{U$y&3oDEuzNIJj%quF>A^ zkN@~9ZBjd@EyC|Te*E}5po%0-!{p@T$0u9%=l1RY`k>o&BoX26yZ_4L475`o!rLz1 zmi7n5b zIdagin_knq?c)y=IK%Cfdf?{G7Z_2x25fJx*J@jAC8{(|C0etDzS5ThI`BCs;W8Dv0 zLpXHkFb4fTn#~qoa^+Q+o!wA=Yey&<#Yn|5c5z>3QQ;nyQxVa@AP*u@hXgOnvLZ>6 zFeW>Met&S!{QTTEPZAz=$w|wv41iJ~s8J%CZ`7K9_TfMMegC57z;1sYOj%^Mg=Ips zo}gQIDDnZa)PZ??uL?_FkEy2PTMa{+%gofMlN(2chE!z{b(^Mc^UTcT#NwAD5GqCS zB&U&Q$dIk(^Knk*6K}2(@X*FhbRNl zQgtFCa^C?v64*)uJ-3Z_T@B6!%O|^Wp zM9&^Qt41PHnx2|wK=rrY{TmBsL={$zbJp5BLAW6=WUC0^k_4S@AN^;Z(lj;C%*?F% zjaqa13B+KAJ66nG=>bBj5fUSngL6+R5ro(U2Hzs-3;;s_D?D;?+eFomDPW|3^ameU z-i`EYUh{G%s&6g=-UHYTDr$%k5{G?>%Wt~(o`-J7cafboCi2EN{lGdA{viczWRfSH zOYXk&j!z%Jimlj+t=NjK*ov*#imlj+t=K;R4L=lA2Ea&k00000NkvXXu0mjfYl@yD literal 0 HcmV?d00001 diff --git a/images/sapper_idle/agent.png b/images/sapper_idle/agent2.png similarity index 100% rename from images/sapper_idle/agent.png rename to images/sapper_idle/agent2.png diff --git a/images/sapper_idle/agent3.png b/images/sapper_idle/agent3.png new file mode 100644 index 0000000000000000000000000000000000000000..f1b16bbdb008bacd59ae25b386b141558fb00c61 GIT binary patch literal 13093 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 5) or (agent.dir == 2 and agent.y*80 > 0) or (agent.dir == 0 and agent.y*80 < 700))): game_ui.move() -- 2.20.1 From edb56dac1d3064375fc19c0b2ea417447dd6157a Mon Sep 17 00:00:00 2001 From: s452717 Date: Fri, 9 Apr 2021 19:11:33 +0200 Subject: [PATCH 4/5] Change image on rotate --- src/agent.py | 3 ++- src/const.py | 8 +++++++- src/game_ui.py | 6 +++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/agent.py b/src/agent.py index 25156b7..d9e860c 100644 --- a/src/agent.py +++ b/src/agent.py @@ -1,10 +1,11 @@ from const import SAPPER_IDLE +import pygame as pg class Agent: def __init__(self, x: int = 0, y: int = 0): self.name = "Kapitan Bomba" - self.img = SAPPER_IDLE + self.img = pg.image.load(SAPPER_IDLE[1]) self.dir = 1 self.x = x self.y = y diff --git a/src/const.py b/src/const.py index 4b0208c..5212b40 100644 --- a/src/const.py +++ b/src/const.py @@ -37,7 +37,13 @@ for name, val in { ) ICON = main_path + '/images/mine_icon.png' -SAPPER_IDLE = pg.image.load(main_path + '/images/sapper_idle/agent.png') +SAPPER_IDLE = [main_path + '/images/sapper_idle/agent0.png', + main_path + '/images/sapper_idle/agent1.png', + main_path + '/images/sapper_idle/agent2.png', + main_path + '/images/sapper_idle/agent3.png'] + + +#pg.image.load(main_path + '/images/sapper_idle/agent1.png') #empty space diff --git a/src/game_ui.py b/src/game_ui.py index 8768379..b0184fa 100644 --- a/src/game_ui.py +++ b/src/game_ui.py @@ -1,4 +1,6 @@ import pygame as pg +import os +main_path = os.path.dirname(os.getcwd()) from agent import Agent from environment import Environment @@ -25,7 +27,6 @@ class GameUi: ) self.update() self.clock.tick(15) - self.agent.img = SAPPER_IDLE self.update() def update(self): @@ -38,4 +39,7 @@ class GameUi: def rotate(self, dir): self.agent.dir = (self.agent.dir + dir) % 4 print(self.agent.dir) + self.agent.img = pg.image.load(SAPPER_IDLE[self.agent.dir]) + self.update() + -- 2.20.1 From 227a2469684895a18ec6229dc31a5a85e195b733 Mon Sep 17 00:00:00 2001 From: s452717 Date: Fri, 9 Apr 2021 19:48:59 +0200 Subject: [PATCH 5/5] add impassable terrain --- src/game_ui.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/game_ui.py b/src/game_ui.py index b0184fa..04dc057 100644 --- a/src/game_ui.py +++ b/src/game_ui.py @@ -18,6 +18,13 @@ class GameUi: coord = 'x' if self.agent.dir in (1, 3) else 'y' shift = -1 if self.agent.dir in (2, 3) else 1 # print(coord, shift) + test = int(getattr(self.agent, coord) + shift) + if coord == 'x': + if self.env.field[self.agent.y][test].number in (2, 3): + return + elif coord == 'y': + if self.env.field[test][self.agent.x].number in (2, 3): + return for x in range(8): setattr( self.agent, @@ -38,7 +45,7 @@ class GameUi: def rotate(self, dir): self.agent.dir = (self.agent.dir + dir) % 4 - print(self.agent.dir) + #print(self.agent.dir) self.agent.img = pg.image.load(SAPPER_IDLE[self.agent.dir]) self.update() -- 2.20.1