This is the simplest thing to do, but with style… and readable code.
import pygame as pg
import sys
# # ============== FRAME RATE FUNCTIONS =====
# def create_fonts(font_sizes_list):
# "Creates different fonts with one list"
# fonts = []
# for size in font_sizes_list:
# fonts.append(
# pg.font.SysFont("Arial", size))
# return fonts
# def render(fnt, what, color, where):
# "Renders the fonts as passed from display_fps"
# text_to_show = fnt.render(what, 0, pg.Color(color))
# screen.blit(text_to_show, where)
# def display_fps():
# "Data that will be rendered and blitted in _display"
# render(
# fonts[0],
# what=str(int(clock.get_fps())),
# color="white",
# where=(0, 0))
# # put this after pygame.init() or pg.init()
# # fonts = create_fonts([32, 16, 14, 8])
# # ==== END ==== #
# =============== Generate the Window =====
def window(title):
"Create the screen + title and the clock object for the frame"
screen = pg.display.set_mode((400, 300))
pg.display.set_caption(title)
return screen, pg.time.Clock()
def quitbutton():
"Look for the key events"
global loop
for event in pg.event.get():
if event.type == pg.QUIT:
loop = 0
def clear_screen():
screen.fill((0, 64, 128))
def refresh_screen():
pg.display.flip()
clock.tick(60)
def update_screen():
"The while loop updates"
quitbutton()
clear_screen()
# display_fps()
# show_sprites()
refresh_screen()
pg.init()
# fonts = create_fonts([32, 16, 14, 8])
screen, clock = window("Game")
loop = 1
# ============== Where everything happens
while loop:
update_screen()
# ======================== engine end ===
pg.quit()
sys.exit()
We made a function for quitting the window, refreshing it etc. You may found it redounding, but I like it.
The result is just this:
You have seen that there are some commented lines. Let’s uncomment them
import pygame as pg
import sys
# ============== FRAME RATE FUNCTIONS =====
def create_fonts(font_sizes_list):
"Creates different fonts with one list"
fonts = []
for size in font_sizes_list:
fonts.append(
pg.font.SysFont("Arial", size))
return fonts
def render(fnt, what, color, where):
"Renders the fonts as passed from display_fps"
text_to_show = fnt.render(what, 0, pg.Color(color))
screen.blit(text_to_show, where)
def display_fps():
"Data that will be rendered and blitted in _display"
render(
fonts[0],
what=str(int(clock.get_fps())),
color="white",
where=(0, 0))
# put this after pygame.init() or pg.init()
# fonts = create_fonts([32, 16, 14, 8])
# ==== END ==== #
# =============== Generate the Window =====
def window(title):
"Create the screen + title and the clock object for the frame"
screen = pg.display.set_mode((400, 300))
pg.display.set_caption(title)
return screen, pg.time.Clock()
def quitbutton():
"Look for the key events"
global loop
for event in pg.event.get():
if event.type == pg.QUIT:
loop = 0
def clear_screen():
screen.fill((0, 64, 128))
def refresh_screen():
pg.display.flip()
clock.tick(60)
def update_screen():
"The while loop updates"
quitbutton()
clear_screen()
display_fps()
# show_sprites()
refresh_screen()
pg.init()
fonts = create_fonts([32, 16, 14, 8])
screen, clock = window("Game")
loop = 1
# ============== Where everything happens
while loop:
update_screen()
# ======================== engine end ===
pg.quit()
sys.exit()
You will see this
Subscribe to the newsletter for updates
Tkinter templatesTwitter: @pythonprogrammi - python_pygame
Claude's Games
1. Memory gameVideos
Speech recognition gamePygame's Platform Game
