Dojo Defender Sessie 3: Cheatsheet
Pygame game loop
import pygame, sys
pygame.init()
screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()
running = True
while running:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit(); sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
# schiet
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
ship.rect.x -= 5
screen.fill((10, 10, 30))
ship.draw(screen)
pygame.display.flip()
GameObject (Surface + Rect)
class GameObject:
def __init__(self, image, x, y):
self.image = pygame.image.load(f'images/{image}').convert_alpha()
self.rect = self.image.get_rect(center=(x, y))
def draw(self, surface):
surface.blit(self.image, self.rect)
Tekst in pygame
font = pygame.font.SysFont(None, 36)
txt = font.render(f"Score: {score}", True, (255, 255, 255))
screen.blit(txt, (10, 10))
Geluid
pygame.mixer.init()
shoot = pygame.mixer.Sound('sounds/shoot.wav')
shoot.play()
pygame.mixer.music.load('sounds/bg_music.wav')
pygame.mixer.music.play(-1)
pgzero → pygame
| pgzero | pygame |
|---|
Actor('ship') | GameObject('ship.png', x, y) |
keyboard.left | keys[pygame.K_LEFT] |
on_key_down(key) | event.type == pygame.KEYDOWN |
screen.draw.text(...) | font.render() + screen.blit() |
rock.colliderect(ship) | rock.rect.colliderect(ship.rect) |
pgzrun.go() | while running: loop |