From 338e24357f5c096a449bb1a408ce984c35023715 Mon Sep 17 00:00:00 2001 From: StochasticMouse Date: Fri, 12 Jul 2024 16:56:47 +0200 Subject: [PATCH] isometric tiles --- data/images/tiles/iso/0.png | Bin 0 -> 301 bytes data/images/tiles/iso/1.png | Bin 0 -> 320 bytes data/images/tiles/iso/2.png | Bin 0 -> 320 bytes data/images/tiles/iso/3.png | Bin 0 -> 323 bytes data/images/tiles/iso/4.png | Bin 0 -> 315 bytes data/images/tiles/iso/5.png | Bin 0 -> 324 bytes data/images/tiles/iso/6.png | Bin 0 -> 328 bytes data/images/tiles/iso/7.png | Bin 0 -> 320 bytes game.py | 11 +++---- scripts/__pycache__/entities.cpython-311.pyc | Bin 1513 -> 0 bytes scripts/__pycache__/tiles.cpython-311.pyc | Bin 2853 -> 0 bytes scripts/__pycache__/utils.cpython-311.pyc | Bin 1250 -> 0 bytes scripts/entities.py | 1 + scripts/tiles.py | 6 ++-- scripts/utils.py | 30 +++++++++++++++---- 15 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 data/images/tiles/iso/0.png create mode 100644 data/images/tiles/iso/1.png create mode 100644 data/images/tiles/iso/2.png create mode 100644 data/images/tiles/iso/3.png create mode 100644 data/images/tiles/iso/4.png create mode 100644 data/images/tiles/iso/5.png create mode 100644 data/images/tiles/iso/6.png create mode 100644 data/images/tiles/iso/7.png delete mode 100644 scripts/__pycache__/entities.cpython-311.pyc delete mode 100644 scripts/__pycache__/tiles.cpython-311.pyc delete mode 100644 scripts/__pycache__/utils.cpython-311.pyc diff --git a/data/images/tiles/iso/0.png b/data/images/tiles/iso/0.png new file mode 100644 index 0000000000000000000000000000000000000000..39181389d76d49ea3c9d77bab4fbce98cced4d79 GIT binary patch literal 301 zcmV+|0n+}7P))1Qz*~ZAb$bx} z0lYQ1md@$c46UXL;v*tWZ@!cA7eG#exeVq;i21>2(YL~P4ZLLD46zK^a&L#(1w{Mi zkr?t&G>^seV#L&;8tr;D))?-3IocR6ay|Y7hepg016w7;00000NkvXXu0mjf0K9mS literal 0 HcmV?d00001 diff --git a/data/images/tiles/iso/1.png b/data/images/tiles/iso/1.png new file mode 100644 index 0000000000000000000000000000000000000000..61231e510abcc92a2a246be9401b2afa8d622ccf GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQY^(zo*^7SP{WbZ0px%8ba4#H zXnZ>}ny=Y_hb8yQ?XP?G#vOKdRlU~5aj;D8+@Hplxw0R<4!KNO!FZ;|%5UXKgBMTl ze&G1`Zys~~w)>U&fp{m>j#9>`gM!+ESxjr1ly51? zaev_I%jjGoc0tSHQ^=8A#=R`=S*{}7FH9|p!jCL%2y9Ybs&21%`XeTKoUZ!-Y z)=G!VC00PNb&+0YXH%fKtLwuRrynhHywWRpQRCIM85t6##UUo|QmSj%eRa=su`c!A Q4-5hZPgg&ebxsLQ0H!^B2LJ#7 literal 0 HcmV?d00001 diff --git a/data/images/tiles/iso/2.png b/data/images/tiles/iso/2.png new file mode 100644 index 0000000000000000000000000000000000000000..28590f1fbe4297750b72dd5ab87a6e86e888bee2 GIT binary patch literal 320 zcmV-G0l)r;4C=fEy7$tZg9p+gqeWS;Ec71>H=y7XRJh2 z6JQmbsV(BM0I%RoEfK{6S_NmGinuMHm*7mPh-?A9250VyxD+r-a3)v8sen;~Ggl&% zfLVewXCnRrW)04;2oaG4%paWDMQn}7(VX=NV7&y_XK?)pYpckN*JY*v|@k Sl3ghP0000Tzu&O literal 0 HcmV?d00001 diff --git a/data/images/tiles/iso/3.png b/data/images/tiles/iso/3.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd67bdabd153b258580c8d463c58c7c44bc78b6 GIT binary patch literal 323 zcmV-J0lfZ+P)i`|9^7bhfOyr6H{veFF0>C6`Ye^6qtxIbr3UO zu5<3P4ElH{JdNk$xQ?gv8+Qi5O8i#pKAj|-?8izQ>Ak+b98Hcz= zAk+X@8HYT|AYKFTG7fo_Kr{pBWgOP=62xNwqZpTJ1yK!PRO3=lLEHkE#kf>0h$4Vl zjZ58u0065Pmnwny16b9#lmx-doQc*qE_H%Po!8M_`xT)55!}DQy%DMkI0*>#tuRa& z6omO<2qq2!!u>c50iqT}AW+nj7zB)36otT1%i@qAYGVWvMQx2i!l=zrNIXb;{0k!U V&kCDCD$W1^002ovPDHLkV1l6&dl>)# literal 0 HcmV?d00001 diff --git a/data/images/tiles/iso/4.png b/data/images/tiles/iso/4.png new file mode 100644 index 0000000000000000000000000000000000000000..2063b1a9678c334c4d8ca8d4a07fbd863cff36de GIT binary patch literal 315 zcmV-B0mS}^P)|13?jmP zIxGrgT@Vq4vMz~{?uMd7T=;-W#;jS(-cPn00ehG!C*o{sA!q&kFFrTPFYj N002ovPDHLkV1jv%cqae= literal 0 HcmV?d00001 diff --git a/data/images/tiles/iso/5.png b/data/images/tiles/iso/5.png new file mode 100644 index 0000000000000000000000000000000000000000..6e49b40c505a4ec132877147b86b93c6b39a2089 GIT binary patch literal 324 zcmV-K0lWT*P)Nv+FM`SG4#)*ZyhWG`C=HHyi7*pT8yv9~p)Nox zIASG2O@LK!L|epd0baooEfLiMS_Mb$inuJGm*7aPh++Y~21l-nI2ABTaHLd3R=}vi zkuwoOz%0R$oQS`GS%V`ef|)rH%^w`uMQn}7(VX=N(0U23&*1tIDk(UM2=!lKaY3gd z%qK(Q!cIiEPlrW;s0$*ZP}C(cQ84PFs3;tDSzI)Tx-lXeMco<`4Wn+3ipHI6kN*JH W{Lc!REMB<)0000}lJBqqhl}E?(5nB;U-e4uR)ugWYxgl%9Q-V<&2~OmOnOF#kg0(2{B^-un|P`! z)opr~fB$at?`GZOa|$!&%xjoaxZ}KJi)BO5V}tXYEs_mUj|GlPv{*6dJ{Gvn(IUm5 z{dj`Al55(*yFmPL&{l;m#xGehuk<>+85T=S*J7Q>YOtzs zrM3V=g4p9AOM!ZZ%~I1RDa@EDeDTk*rF;U>k4sIiSFvW)vRuzE$ZhFj;$w2E)#eel zVoj`*XzHBXP+-sJ+^~XGkV9mv3LE2MF;~TcE1N7-I&Micx&%fiPcXFVdQ&MBb@07LO~TL1t6 literal 0 HcmV?d00001 diff --git a/data/images/tiles/iso/7.png b/data/images/tiles/iso/7.png new file mode 100644 index 0000000000000000000000000000000000000000..f192819f0631bbcefea1ca8fa33eede5366af98b GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQY^(zo*^7SP{WbZ0px%8ba4#H zXnZ>}ny=Y_hb8yQ>2EH3a}T?_s$T2jI9Mik?oVUOT-lFahg_ztU_4V}<+t*r!HcJN zKXCl3ozI*<|9)k@ppRdiTfS=|_tkuk;FD)OdAmMutRbafr#gl~IRF3v literal 0 HcmV?d00001 diff --git a/game.py b/game.py index 4dd226a..2e440f7 100644 --- a/game.py +++ b/game.py @@ -21,10 +21,11 @@ class Game: self.player = Entity(self, 'player', (50.0,200.0), (8, 15)) self.assets = { 'player' : load_image('entities/player.png'), - 'grass' : load_images('tiles/grass/'), - 'stone' : load_images('tiles/stone/') + #'grass' : load_images('tiles/grass/'), + #'stone' : load_images('tiles/stone/') + 'iso' : load_images('tiles/iso/') } - self.tilemap = Tilemap(self, (32,32), 'map_1.csv') + self.tilemap = Tilemap(self, (64,32), 'map_1.csv') def run(self): self.status = True while self.status: @@ -39,9 +40,9 @@ class Game: if keys[pygame.K_RIGHT]: delta[0] += 1 if keys[pygame.K_UP]: - delta[1] -= 1 + delta[1] -= 0.5 if keys[pygame.K_DOWN]: - delta[1] += 1 + delta[1] += 0.5 self.player.update(delta) self.tilemap.render(self.display) self.player.render(self.display) diff --git a/scripts/__pycache__/entities.cpython-311.pyc b/scripts/__pycache__/entities.cpython-311.pyc deleted file mode 100644 index 9d4b95702fb566b326d3bc360b42fe03e3637826..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1513 zcmZux&5ILR5U=;TJJV`1!H+;j7}#+Yj0fYommR-AcGtZ~E_yMSrp*O5)g z!W`xh7THx97!Mw@FzAR19{fXQU=E?dlPB3rWITDYsyp2}&Qz!CRlRyu_3BsEd7jH1 z2Bh7`|J46y0Pjgj$eang7f@IS0fM!l8n3L%Is5^FuYxe1ae$Zj##A)~y9Fil1F4nT zY&Tlch`*t_4ic(NK$Q!&3RQ!HG@Dj(TyVh~{2AWqCB8A$nJ`vaH6u(sKPN2Ak_j`v zcLFcy*HTYBOL+`@ci$jehanq+gHlXGj#?Ts_{OhEJ`oL#y_wM?xjPI^)Kag5{RI=O z!GqKXpqWWxzv6rG!f11eO#s$pR1|?(Vxc91zAsC5Xg1uo3{BEP-tj}rRm$y$hTqkp zsl9;==jyGl8~l7RwC~GSw}yz6EHuehT~YKfBOUTqM^I5&WSUC&f#~zaa=R0hb%9IxXAjx)%|4LF}{P+WZj*$PZf z6i4QRLz5FHX?b_Nu=dN7UmsmvyNaqkGrlXHd}@!E#@EM%*LPnvw~EW##pRviG9Jl| z@Y%&k5CKw4M+|qURZ)vCp@1!hCay6J*#L#Vu+4w6X4>c>ALIaP{A=q8>=&$3;%Xkx zN63^6l}9tK^w6f6>1H)rr=5$Zh-I~;tGlfCPj*u#aAyx@g zeGVDIVCVnM{+)ezd+p9n;mlZUcsqp)Z%)5GyKP_Iu`h2WzX*;B&O1(5hhTTY!wzCE zdM%Q(j&rZ)wqlDqMt3_zjQ+w@k=P=#7Z8PsI;5!Zh>@W0AX`bFDYvXkQ%G4BmP%v3 zVQ(&NUf(SIm*2=wfm=U*&oa!qGKKvt&PsVoW|;B&(I;zldTqZSUz1E~i5PV~y5DE} sN?hGFbsG1mrTQkaslgbVKyD>^CU9&k`Ay9u4AbvtA8GH?0fs2s7ym;!jQ{`u diff --git a/scripts/__pycache__/tiles.cpython-311.pyc b/scripts/__pycache__/tiles.cpython-311.pyc deleted file mode 100644 index 4fb0084fe64485857c83b0630d838f45dbb7dedb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2853 zcmcImO>7fK6rTNaoYW>xo#2>|5(-qf{J69gAV?``K!6ldL{bq<+tuRTIBWdJ?1tiK zQ{})RMNu17k&;6WK2T}|l{mCg4jg)_a^PS~i)4)ysZvi=J)}xcoci86UfU3Q>v;Wk z=FR(?H}k#OAN~F|0`0-QZ^xNP$R9YUH5fZ><21Y$iAq#1MPk)A7vo{fr-ZZ^6FH&^ zF^MPVh$`M8s&tn3h<}sGicmOuQB|>I<9yjjtUe7H1I| z`A#!&cC#hjSS|iOxPDl3Pe8+!OW?@0Z;^sj({FrRLbCyDK9ggT zLaCBxttNym8~T*S{MqsG1l3g;SqAf_vWhChiXtKt4J|cJTfhs&&0=0)%Q?lIFff`v zXfLACbjFMtW|k@mEt=5HXf7}3Clk6HPh~S&)QD3(XBtt*_~Bfhd1YD8=%y@B1vXQ6 zxW@5*TOx^-GxXwe9#Ub1je>X@2*+V_U@>7ec$=-`sXLg-d(nL zSE=@FfHsM{S%m=_#Y}EgAh(OebTdqd#l4)dt@oyh>+Xt)mN%QlO+ioP%m&X%cb6XV z_d)BStJ&;zns2i2ac%PEwpyQ%M?&-2h7;lXH-mLKi%&YZLXIki-HB$OXUG@owD4Lz z=|A+&O^fDs*DSGkOR&UozOGU4O-mNQq&|jGgXN}G`)U@^TH+-vsGeoPB1w0>Rge9k zGIxGXb5427@C)u>glDa)meSL@sZl1WWz;m;^==8k39(C8tr`e%gu=c&H!yxVy}Y!ZLu82{ii^6XMwv@E|@J z!ZYwNAk6yuXgjK4n(DZzAr-9|e*&2yYhM5C#5e78?X&G`!LEh=ANYH1KYg@vynJAA z)p!>B+>R-wzU$?_>o(9}+z!TPy=$TH!gOKmms_RKsdDI)9XbU_^Q{HDm%5kVDsp!C z-E#1N9Xzm3gjSQQ(%Hea(9Wf?xB2?Jkoh#t!HmxtQdd1rK7`#Z|fb$$SMJc|fJB1C?TH3k|3K z6$@9U@yxn55GRc&nHDXs;8p~P+ijrb*7|x4vEbUN$6N0KzX4%Q{06LnO}DO0L0xLD zB^;R>o0|d|%%RhuK79QDM_5PnEAgCmQ0*CZa7(e?&=8VtB)G~*D}5XLyOHbx!o=$- z-E=N1=1~koGY#j`qHmytqar!DV=cxc9arKS<8Cu957hwgJuKFBpfL~CGO9+Ww$<*a z>KIFj@fQ$4TF3TzbHTDhk>YMUbg>BHrIyXR0*v3uSt zcO9|2jvziz1nE3i3H2;kg@J-n7_>wC=fz4OwCMZZw=}wZ)$To1R39IGl(KtIuAKQb z{Nz)+cW8CAbot8DYo%+leN8W4)XRaS9Y~g(2T=l+J)|pacfPYuxYiNygLL*x#TWc; z=X`*`{w<2ziFC^!1g}9 zd+`S&^qWsw=5IQunoPh$(-qW#SvXOTSyXDyEnZw zXUs1=FrG{=KXm=6LjILWEjPqW%SaWn1^Ut~LF46O(pqsnnOvIjb4H_Qx}M8hI_N>6 zVR|}a>BW*!T1#h)R2DSSS&C+g7Sq?POqSg&mRyy;&=4=D7l9)L51R(C(TUo(dE;1( z9I26=h5cFQ(k(|Ft*E2N>co*c;i&P78n-ImbI(t2fo?qLLK$(9kXa!sR2$kU<;L4Y! zZv8tsG1|P|RPYSzTr*anmPuTxz+8Ve!z_}av=_KsU$R&<^F(wK)E*GA#>eX_Ad`^? ztrM*xGL (+tilesize[0]/2,+tilesize[1]/2) + #(0,1) -> (-tilesize[0]/2,+tilesize[1]/2) + #a must be (+tilesize[0]/2,-tilesize[0]/2) + # (+tilesize[1]/2,+tilesize[1]/2) + a = np.array([[1,-1],[1,1]]) + a = 0.5 * a * tilesize[:,np.newaxis] + return np.squeeze(np.matmul(a,coord[:,np.newaxis])) +def to_cartesian(coord, tilesize): + #manually calculated the inverse of a in to_isometric + a = np.array([[1,1],[-1,1]]) + a = a * (1/tilesize) + return np.squeeze(np.matmul(a,coord[:,np.newaxis])) +def to_isometric_pixel(coord): + a = np.array([[1,-1],[1,1]]) + a = 0.5 * a + return np.squeeze(np.matmul(a,coord[:,np.newaxis]))