From 4b2a7fc721d95447b6cd0c9ce140ea2120e1b4c1 Mon Sep 17 00:00:00 2001 From: Alessio Rondelli Date: Wed, 10 Jul 2024 20:08:18 +0200 Subject: [PATCH] first commit --- data/images/entities/player.png | Bin 0 -> 2655 bytes data/images/tiles/grass/0.png | Bin 0 -> 121 bytes data/images/tiles/grass/1.png | Bin 0 -> 121 bytes data/images/tiles/grass/2.png | Bin 0 -> 121 bytes data/images/tiles/stone/0.png | Bin 0 -> 122 bytes data/images/tiles/stone/1.png | Bin 0 -> 122 bytes data/images/tiles/stone/2.png | Bin 0 -> 121 bytes data/maps/map_1.csv | 21 ++++++++ game.py | 53 +++++++++++++++++++ scripts/__pycache__/entities.cpython-311.pyc | Bin 0 -> 1513 bytes scripts/__pycache__/tiles.cpython-311.pyc | Bin 0 -> 2853 bytes scripts/__pycache__/utils.cpython-311.pyc | Bin 0 -> 1250 bytes scripts/entities.py | 15 ++++++ scripts/tiles.py | 27 ++++++++++ scripts/utils.py | 21 ++++++++ shell.nix | 12 +++++ 16 files changed, 149 insertions(+) create mode 100644 data/images/entities/player.png create mode 100644 data/images/tiles/grass/0.png create mode 100644 data/images/tiles/grass/1.png create mode 100644 data/images/tiles/grass/2.png create mode 100644 data/images/tiles/stone/0.png create mode 100644 data/images/tiles/stone/1.png create mode 100644 data/images/tiles/stone/2.png create mode 100644 data/maps/map_1.csv create mode 100644 game.py create mode 100644 scripts/__pycache__/entities.cpython-311.pyc create mode 100644 scripts/__pycache__/tiles.cpython-311.pyc create mode 100644 scripts/__pycache__/utils.cpython-311.pyc create mode 100644 scripts/entities.py create mode 100644 scripts/tiles.py create mode 100644 scripts/utils.py create mode 100644 shell.nix diff --git a/data/images/entities/player.png b/data/images/entities/player.png new file mode 100644 index 0000000000000000000000000000000000000000..74d17fd61229577ec5e98a7628204687921fe209 GIT binary patch literal 2655 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 F1ORNQ9cBOk literal 0 HcmV?d00001 diff --git a/data/images/tiles/stone/1.png b/data/images/tiles/stone/1.png new file mode 100644 index 0000000000000000000000000000000000000000..159980e242c06fb04fa4ee0c5501f9aec01a812b GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@(n#*977^n z-<~sMWH8`4ykX6WL-Vh2E$;U@P?cNHH~X|DPz@4rn51Lj#`xbzKgk><>gnp|vd$@? F2>^bt9i;#O literal 0 HcmV?d00001 diff --git a/data/images/tiles/stone/2.png b/data/images/tiles/stone/2.png new file mode 100644 index 0000000000000000000000000000000000000000..57a068d083a30bd096ee07d194d887564c4a3b0a GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@(ny)977^n z-<~sMWH8`4ykX6W!!@lJ-PIEIZnJMc`&0&~1PLg3iuqSD?f){TOV literal 0 HcmV?d00001 diff --git a/data/maps/map_1.csv b/data/maps/map_1.csv new file mode 100644 index 0000000..666a9f7 --- /dev/null +++ b/data/maps/map_1.csv @@ -0,0 +1,21 @@ +3,1,1,1,1,1,1,1,1,1,1,1,1,1,4 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +1,2,2,2,2,2,2,2,2,2,2,2,2,2,1 +5,1,1,1,1,1,1,1,1,1,1,1,1,1,6 diff --git a/game.py b/game.py new file mode 100644 index 0000000..4dd226a --- /dev/null +++ b/game.py @@ -0,0 +1,53 @@ +import pygame +import numpy as np +from scripts.tiles import Tilemap +from scripts.entities import Entity +from scripts.utils import load_image, load_images + +# SETTINGS +WIDTH = 1280 +HEIGHT = 720 +TITLE = 'YuGiOh Tag Force Clone' + +class Game: + def __init__(self): + pygame.init() + self.screen = pygame.display.set_mode((WIDTH, HEIGHT)) + self.display = pygame.Surface((WIDTH//2, HEIGHT//2)) + + pygame.display.set_caption(TITLE) + self.clock = pygame.time.Clock() + + 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/') + } + self.tilemap = Tilemap(self, (32,32), 'map_1.csv') + def run(self): + self.status = True + while self.status: + self.display.fill('white') + delta = np.array([0.0,0.0]) + for event in pygame.event.get(): + if event.type == pygame.QUIT: + self.status = False + keys = pygame.key.get_pressed() + if keys[pygame.K_LEFT]: + delta[0] -= 1 + if keys[pygame.K_RIGHT]: + delta[0] += 1 + if keys[pygame.K_UP]: + delta[1] -= 1 + if keys[pygame.K_DOWN]: + delta[1] += 1 + self.player.update(delta) + self.tilemap.render(self.display) + self.player.render(self.display) + self.screen.blit(pygame.transform.scale_by(self.display,2), (0,0)) + pygame.display.update() + self.clock.tick(60) + pygame.quit() + +Game().run() diff --git a/scripts/__pycache__/entities.cpython-311.pyc b/scripts/__pycache__/entities.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9d4b95702fb566b326d3bc360b42fe03e3637826 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/scripts/__pycache__/tiles.cpython-311.pyc b/scripts/__pycache__/tiles.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4fb0084fe64485857c83b0630d838f45dbb7dedb GIT binary patch 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 {config = { allowUnfree = false; cudaSupport = false;}; }}: + +pkgs.mkShell { + buildInputs = with pkgs; [ + (python311.withPackages(ps: with ps; [ pip numpy notebook tkinter pygame-ce ])) + ]; +#cudaPackages.cudatoolkit + shellHook = '' + echo "You are now using a NIX environment" + idle3.11 + ''; +}