Aggiorna la gestione della risoluzione nel file .env e modifica la funzione win_screen per supportare la visualizzazione dei punteggi
This commit is contained in:
@@ -1,2 +1,2 @@
|
|||||||
SDL_VIDEODRIVER=x11
|
SDL_VIDEODRIVER=x11
|
||||||
RESOLUTION=1920x1080
|
#RESOLUTION=1920x1080
|
||||||
+13
-4
@@ -92,17 +92,26 @@ class GameWindow:
|
|||||||
def delete_tag(self, tag):
|
def delete_tag(self, tag):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def win_screen(self, text, image=None):
|
def win_screen(self, text, **kwargs):
|
||||||
self.draw_rectangle(50 - self.w_offset, 50 - self.h_offset,
|
self.draw_rectangle(50 - self.w_offset, 50 - self.h_offset,
|
||||||
self.target_size[0] - 100, self.target_size[1] - 100, "win", filling=(255, 255, 255))
|
self.target_size[0] - 100, self.target_size[1] - 100, "win", filling=(255, 255, 255))
|
||||||
self.draw_text(text, self.fonts[self.target_size[1]//20], "center", sdl2.ext.Color(0, 0, 0))
|
self.draw_text(text, self.fonts[self.target_size[1]//20], "center", sdl2.ext.Color(0, 0, 0))
|
||||||
if image:
|
if image := kwargs.get("image"):
|
||||||
image_size = self.get_image_size(image)
|
image_size = self.get_image_size(image)
|
||||||
self.draw_image(self.target_size[0] // 2 - image_size[0] // 2 - self.w_offset,
|
self.draw_image(self.target_size[0] // 2 - image_size[0] // 2 - self.w_offset,
|
||||||
self.target_size[1] // 2 - image_size[1] * 2 - self.h_offset,
|
self.target_size[1] // 2 - image_size[1] * 2 - self.h_offset,
|
||||||
image, "win")
|
image, "win")
|
||||||
|
if scores := kwargs.get("scores"):
|
||||||
|
#self.draw_text("Scores:", self.fonts[self.target_size[1]//20], (self.target_size[0] // 2 - 50, self.target_size[1] // 2 + 50), sdl2.ext.Color(0, 0, 0))
|
||||||
|
sprite = self.factory.from_text("Scores:", color=sdl2.ext.Color(0, 0, 0), fontmanager=self.fonts[self.target_size[1]//20])
|
||||||
|
sprite.position = (self.target_size[0] // 2 - 50, self.target_size[1] // 2 + 30)
|
||||||
|
self.renderer.copy(sprite, dstrect=sprite.position)
|
||||||
|
for i, score in enumerate(scores[:5]):
|
||||||
|
#self.draw_text(score, self.fonts[self.target_size[1]//40], (self.target_size[0] // 2 - 50, self.target_size[1] // 2 + 50 + 30 * (i + 1)), sdl2.ext.Color(0, 0, 0))
|
||||||
|
sprite_score = self.factory.from_text(score, color=sdl2.ext.Color(0, 0, 0), fontmanager=self.fonts[self.target_size[1]//40])
|
||||||
|
sprite_score.position = (self.target_size[0] // 2 - 50-sprite_score.size[0] // 4,
|
||||||
|
self.target_size[1] // 2 + 60 + 20 * (i + 1))
|
||||||
|
self.renderer.copy(sprite_score, dstrect=sprite_score.position)
|
||||||
def pause_screen(self, text):
|
def pause_screen(self, text):
|
||||||
self.draw_rectangle(50 - self.w_offset, 50 - self.h_offset,
|
self.draw_rectangle(50 - self.w_offset, 50 - self.h_offset,
|
||||||
self.target_size[0] - 100, self.target_size[1] - 100, "pause", filling=(255, 255, 255))
|
self.target_size[0] - 100, self.target_size[1] - 100, "pause", filling=(255, 255, 255))
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ class MiceMaze(controls.KeyBindings):
|
|||||||
if not self.game_end[1]:
|
if not self.game_end[1]:
|
||||||
self.engine.win_screen("Game Over: Mice are too many!", image=self.assets["BMP_WEWIN"])
|
self.engine.win_screen("Game Over: Mice are too many!", image=self.assets["BMP_WEWIN"])
|
||||||
else:
|
else:
|
||||||
self.engine.win_screen(f"You Win! Points: {self.points}", image=self.assets["BMP_WEWIN"])
|
self.engine.win_screen(f"You Win! Points: {self.points}", image=self.assets["BMP_WEWIN"], scores=self.read_score())
|
||||||
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|||||||
Reference in New Issue
Block a user