Commit 04/05-24

This commit is contained in:
Hannah-Dagemark 2024-05-04 16:57:39 +02:00
commit b34722cc51
8 changed files with 286 additions and 44 deletions

190
Main.py
View file

@ -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) == "<class 'str'" or type(bit) == "<class 'int'"
self.write(bit[0],(840,100 + 50*i))
self.write(bit[1],(1090,100 + 50*i))
i += 1
tile_pressed = str(tile_pressed)
tilePrint = self.font.render(tile_pressed, True, (255, 255, 255))
tilePrintRect = tilePrint.get_rect()
tilePrintRect = tilePrintRect.move(1000,50)
tilePrintRect = tilePrintRect.move(1100,0)
screen.blit(tilePrint, tilePrintRect)
class uButtons:
def __init__(self):
self.buttons = []
self.colours = {
"black": (0, 0, 0),
"white": (255, 255, 255),
"gray": (200, 200, 200),
"darkgray": (100, 100, 100),
"red": (255, 0, 0,),
"green": (0, 255, 0,),
"blue": (0, 0, 255,)
}
def addButton(self, name, x, y, width, height, colour_standby=(255,255,255), colour_hover=(200, 200, 200), onAction=print("Button pressed")):
if colour_standby != (255,255,255):
if self.colours[colour_standby] != None:
colour_standby = self.colours[colour_standby]
else:
colour_standby = (255,255,255)
if colour_hover != (200, 200, 200):
if self.colours[colour_hover] != None:
colour_hover = self.colours[colour_hover]
else:
colour_hover = (200, 200, 200)
button = {
"text": name,
"xPos": x,
"yPos": y,
"width": int(width),
"height": int(height),
"colour_standby": colour_standby,
"colour_hover": colour_hover,
"button_action": onAction,
"isHover": False
}
self.buttons.append(button)
uTexter.write(name,(x,y))
def updateHover(self):
pos = pygame.mouse.get_pos()
for button in self.buttons:
if pos[0] > 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