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

pgzeropygame
Actor('ship')GameObject('ship.png', x, y)
keyboard.leftkeys[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