From b34722cc51623dbb102cffce78cc0b5c283093af Mon Sep 17 00:00:00 2001 From: Hannah-Dagemark Date: Sat, 4 May 2024 16:57:39 +0200 Subject: [PATCH] Commit 04/05-24 --- Main.py | 190 ++++++++++++++---- Map/Images/blackstripes.png | Bin 5498 -> 6527 bytes Map/Images/sampledone.png | Bin 5036 -> 7236 bytes Map/MapManager.py | 77 ++++++- Map/__pycache__/MapManager.cpython-312.pyc | Bin 10950 -> 14735 bytes Map/__pycache__/TileTypes.cpython-312.pyc | Bin 4619 -> 4628 bytes .../__pycache__/ScriptUtils.cpython-312.pyc | Bin 155 -> 164 bytes cache.py | 63 ++++++ 8 files changed, 286 insertions(+), 44 deletions(-) create mode 100644 cache.py diff --git a/Main.py b/Main.py index baa3f3a..894b353 100644 --- a/Main.py +++ b/Main.py @@ -26,67 +26,98 @@ mapHeight = int(map.get_height()) time1 = pygame.time.get_ticks() def initMapGen(): y = 0 - bY = 5 - bX = 4 + bY = 10 + cY = 0 + bX = 6 + i = 0 + while bX < mapWidth: for x in range(bX, mapWidth): if y < mapHeight: map.set_at((x, y), (0,0,0,255)) y += 1 - if y % 5 == 0: - map.set_at((x, y), (0,0,0,255)) - y += 1 + cY += 1 + if cY % 7 == 0: + while i != 4: + map.set_at((x, y), (0,0,0,255)) + y += 1 + i += 1 + i = 0 + cY += 1 screen.blit(map, maprect) pygame.display.flip() - bX += 8 + bX += 12 y = 0 + cY = 0 - y = bY - - while bY < mapHeight: - for x in range(0, mapWidth): - if y < mapHeight: - map.set_at((x, y), (0,0,0,255)) - y += 1 - if y % 5 == 0: - map.set_at((x, y), (0,0,0,255)) - y += 1 - screen.blit(map, maprect) - pygame.display.flip() - bY += 10 - y = bY - - bX = 4 + bX = 6 y = 0 + cY = y + i = 0 while bX < mapWidth: for x in range(bX, -1, -1): if y < mapHeight: map.set_at((x, y), (0,0,0,255)) y += 1 - if y % 5 == 0: - map.set_at((x, y), (0,0,0,255)) - y += 1 + cY += 1 + if cY % 7 == 0: + while i != 4: + map.set_at((x, y), (0,0,0,255)) + y += 1 + i += 1 + i = 0 + cY += 1 screen.blit(map, maprect) pygame.display.flip() - bX += 8 + bX += 12 y = 0 + cY = y - bY = 2 y = bY + cY = 0 + + while bY < mapHeight: + for x in range(0, mapWidth): + if y < mapHeight: + map.set_at((x, y), (0,0,0,255)) + y += 1 + cY += 1 + if cY % 7 == 0: + while i != 4: + map.set_at((x, y), (0,0,0,255)) + y += 1 + i += 1 + i = 0 + cY += 1 + screen.blit(map, maprect) + pygame.display.flip() + bY += 20 + y = bY + cY = 0 + + bY = 12 + y = bY + cY = 2 while bY < mapHeight: for x in range(mapWidth, 0, -1): if y < mapHeight: map.set_at((x, y), (0,0,0,255)) y += 1 - if y % 5 == 0: - map.set_at((x, y), (0,0,0,255)) - y += 1 + cY += 1 + if cY % 7 == 0: + while i != 4: + map.set_at((x, y), (0,0,0,255)) + y += 1 + i += 1 + i = 0 + cY += 1 screen.blit(map, maprect) pygame.display.flip() - bY += 10 + bY += 20 y = bY + cY = 2 initMapGen() class uText: @@ -94,14 +125,23 @@ class uText: def __init__(self): self.font = pygame.font.Font(pygame.font.get_default_font(), 36) self.texts = [] + self.takenPos = [] + self.texts_to_remove = [] def write(self, text, position): - self.texts.append((text,position)) + if not (text,position) in self.texts: + for textTest in self.texts: + if textTest[0] != text and textTest[1] == position: + self.texts.remove(textTest) + self.texts.append((text,position)) + print(self.texts) - def delete(self, text): + def delete(self, parameter, info): text2 = [] for place in self.texts: - if place[0] != text: + if place[0] != info and parameter == "name": + text2.append(place) + elif place[1] != info and parameter == "pos": text2.append(place) self.texts = text2 @@ -113,16 +153,86 @@ class uText: screen.blit(textPrint, textPrintRect) def runTextTile(self, tile_pressed): + i=0 info = GameMap.getTileInfo(tile_pressed) + self.write(info["terrain"],(1000,50)) + + for bit in info["gameplay"]: + if True: #type(bit) == " button["xPos"] and pos[0] < button["xPos"] + button["width"]: + if pos[1] > button["yPos"] and pos[1] < button["yPos"] + button["height"]: + button["isHover"] = True + elif button["isHover"] == True: + button["isHover"] = False + + def drawButtons(self): + for button in self.buttons: + buttonRect = pygame.Rect(button["xPos"],button["yPos"],button["width"],button["height"]) + if button["isHover"] == False: + pygame.draw.rect(screen,(button["colour_standby"]),buttonRect) + else: + pygame.draw.rect(screen,(button["colour_hover"]),buttonRect) + +uButtoner = uButtons() uTexter = uText() -uTexter.write("State",(1000,0)) +def prerenderGraphics(): + uTexter.write("State",(1000,0)) + uButtoner.addButton("Claim",850,600,110,40,"darkgray","gray") +prerenderGraphics() + + pygame.image.save(map, "./Map/Images/blackstripes.png") @@ -156,6 +266,8 @@ while running: print(f"MB1 is true") pos = pygame.mouse.get_pos() tile_pressed = GameMap.findTileAt(pos) + if tile_pressed != None: + GameMap.paintTileBorder(tile_pressed, map) # fill the screen with a color to wipe away anything from last frame screen.fill("black") @@ -163,10 +275,12 @@ while running: if tile_pressed != None: uTexter.runTextTile(tile_pressed) + uButtoner.updateHover() + uButtoner.drawButtons() uTexter.runText() - + screen.blit(map, maprect) - + # RENDER YOUR GAME HERE # flip() the display to put your work on screen diff --git a/Map/Images/blackstripes.png b/Map/Images/blackstripes.png index 02c772ab9805624b5b9bbd868542eb1b30433445..d7e3a5d551ed550d99a6d55802e77536492390e0 100644 GIT binary patch literal 6527 zcmeHMYfO`86s|5tg96#gCJ4gJx-K{r3Ihfr$Y9Dh3)`5PmaQn)k`+b>*UF^{bC5C= zQnFeo*tvn513{=vRxXWP$G8;Pq`-his;$VK3I$5r6~6ba8>ZQ>{rgV7U+wpv%X6M{ zPS0D`M?t4dO%9mga5z&Wz&{v=d&v`r+j(NoPW>mpAH1}H!&#j~{C&@)mClaUavuF` zcH-kIole2n;c%C~L;6!;c4plxJXZaU$_A}QEzydmh4MpfPW$vvQFu5bg(_iA&@6Mp z^p6>rD-NOC=}geC69@CfVgZH61riz98RN~H-#XgnqzKF?tykz;Nt>G5oUG(ezhtcB zuBfcGRB`zwDo4LJ5%!tG(gb6?tD@?l99WKg=LOM{G_ZZ zO7yS?efjh8BVz4<7I>rlM0Uu0(*#BGg6#yIZP;1eoHg|O`&YBtuA(}vnER-CY8X*e z_*e&dIBGK5$pBnkRC?Q7h#-hu3nz6rxu(q><3BcBKOkbE-Jr5 zk9IrDl*-s4A{0sysYEP4hN9NXz}wM|s7=oUV76uNfH@;TpQ(N!al7qr)T%v=>#0&S zcU%kntp)2ApmR0iN$?nq$N_(BQ3xU`=bp=ZoC!=dQ3eXs;6#{l80V93F>7WoZe%B2 z0Z>GTd(;2m*`Y_t94kJbCU7GG=`P8?pW!A&Uk&T$t-ebiF|g`vYLCF@jtF?O@n_m^ ze$QF*&lFO}M5l%yh}4~ECd#=nUrQIF&{#X|{H{*603DIV!z>Aih}h8{>@W}LsOZbi z8iNI8Z4}1z8oDMuP9oc1o(P~I;guBL#Kr~GSY7Yxh8M4%1q2z2%$Ez+%s^#Mw0BW@ z46OQ9_}Mkhbq&P#$4)=n=f(D~6i#Z7w^nP%-O)@CJN)0?$Z|CDFS-WW~U$2jfdK=CcrAA6MI@!tI5Qrf|P%{^gYA`4&(O_Qa5f?irvT zEp`o5G(a5`V#;JPhzKFoTJ%6VG6dh*LH@QGhjC&$L>Kzk^6IWB8<3FR_Kcw$?mi#@ z2N!Q2adccb5Vot;4{Nb4=&Nm|?u!XSbp}>d&v9tX7$)#$?dD=(?)H9(rcl_xEVy0C zR9!|Xj*#w~7@AYQPtMVfOrWFNxfWjoA|mIpD$c?F-p|{mX#o7SaWe{|Dpazr8m;bf z3{Zf0B8YNCta`xZX1VDB^(k- zQjTZ&dUm1l*tn4R^;3Q3peTC&bL!0)SXJ5hc*JfLj;pLMjP`15E!?rvY3)}MGhK6l<*p`QFdDz7!cCksqE;iw%&i{L{ bsolLI=7n_MD^=_NSivFh2l-dOcOm<4!$j*< literal 5498 zcmeAS@N?(olHy`uVBq!ia0y~yV76jlU~=GK0*aiHZTY~!AnNGp;uumf=j~m?Np~zn zSRE7I)jyA97D;wk({HqC&GDSA>oYn(K7arI{g3N&KEGFfKBxGc<^Ff}^Upt<^Z&Q( zIZL2G-O>7gb!NwY{NaRfuLHT;s{XS;)fU_KFFs#x0pk4>{cmYMLB%s@`TXz8x9wlM z|5PDJ%jehs{(SnzcY9kd5Ls`XU(fTG_m8<1#I#@kHq;*jS#xgv?r>fe&qMvHc7?v zWsKf61V4QyWK{MVH- zwfhc3{J8_wpWmKO-(G$L;`EhoVMcs!|7#3#SaIFmy;%yLlct=5ITYqOc=*^||7`KA zrXA$)Iq`*P{yeXr|9%4~;BRjWz6~?tJ^$}?u*3fBs=n$lNkwxm%%SBl&%wf{cHQ&B zFF*Mp{(OYy&-wB9?j=Ivb@?`!5%=Z4orffc((kJpfvLd?BO+np^E>AJ;}@S{$qdb( z_WSqjJq!sJzg(CR`|RJ$hbAht1OSgnSonO~Iq&$z=hhH^cA@#RzOJ&m9TF^aZ^8Xq zf5ZMUSpD_8s0jcbk?`Bw}>bh3MhM|BM1N>O*rEn=A*8sWN!F`njxgN@xNAySGQ6 diff --git a/Map/Images/sampledone.png b/Map/Images/sampledone.png index 9ad694fa1fbc661700fe663de0c264088e555212..37d70912a446c87689147fdaf7b69f154b9ee37f 100644 GIT binary patch literal 7236 zcmeHM|5H*~6ldDDcGPmTW>dFx)?8D|LNiRUWh>HXH5=R6Ny|tx+@!R0(FhlsGR@p% z7W#tUU}_83F=0zdC6g_+MkQFkBx90HMo^-mlHY*GTjV|3-FDo+;N5w@+i~ zd5jr+=Iwn0f0LH|O8-MTm~rBJxBMjQV_9aHP5I4-z=}JP$o3)Zs-VQMeEcbWn+U9% zz0cepRH~md!D4Pnncqf(QNP$7dI{u5N-?bIjZA51mMOLo?bKp@%v#M%aEOXl02Y(R zJ`8@fSLi)3H>Pn0FFVfZp{2y&8qozN7^W&6ASPSts9=U|T8@MiiE~YA&;{A%Lt}ql zLEXvnxg`_(5?GhRb)`OpxZ&GmmJgvy*C+A<6ZgBv+g@}dHCCM?2La3B-j$o-hn z7EV5IgJI+59GDQ~MT(6waDU^IERfYhB(2JcJ;R z1aC?X=ol|wV8i89+p?0FzqF0YonzK5zdvQTW@fV-Qe78XlgJ>wnN*KOz{<)WbqTpx zyEx>a`pb_|)(Qw#_=5ck*%}vLn3U@1RR@aRRzj1atD}o_G=+@(022ha{*bUfktKlv zQIQ{?K0K0(ue%WZU@>IYaMOQ7Xhx@2M?blCefvpnDnuBj5WLvC{D)Z}yaHAi?U*y+AgTFDhbRyH>JADXR4DSE9QZp~Ap?V=~sI&J%mEV&r2N=!L ztX%i-(u-Vr zThPd*_di)NlAF$DHX}%GYOS##xhb6GBDpD2LbADnGyo|fAtfZF(rYU!Bb8pX6sh#u sO5>!DD!qNf`<(0rZO0gLptr@jRr$K{IEC14{X2*v?AVPLY&&%JFOGa@^8f$< literal 5036 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 JO_~_$1^}Yg5m*2K delta 46 zcmZ3&IGd6CG%qg~0}y!Lk(