< Zpět na seznam úloh

H1 Bump Race

Tohle je první úloha ze herní sady. Abyste program mohli spustit, musíte mít nainstalovaný modul Pygame: v příkazové řádce spusťte python3 -m pip install pygame. Nemá validaci; hotová je, když vám bude připadat, že funguje správně.

Hráč ovládá kosmickou loď uvnitř bludiště. Od stěn bludiště se loď odráží, jinak se pohybuje prostorem bez tření. Šipky do stran otáčejí loď kolem jejího středu, šipka dopředu a dozadu působí zrychlením podél její osy.

Jako inspirace slouží hra bumprace, kterou můžete rychle skouknout na youtube

Dokumentaci modulu Pygame najdete na oficiálním webu.


Následuje ukázkový kód, který si můžete taky stáhnout. Aby běžel, potřebujete stáhnout taky obrázek bumprace.png. Nemám to vyzkoušené, ale možná se dá kódit na webu, když ho forknete z replit.com/@adominec

import pygame

pygame.init()
surface = pygame.display.set_mode((500, 500))
white = (255, 255, 255)
black = (0, 0, 0)

img = pygame.image.load("bumprace.png")
x, y = 150, 150
rotation = 90

size = 100
maze = [
    "#####",
    "#___#",
    "##_##",
    "#___#",
    "#####",
]

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        rotation += 1
    if keys[pygame.K_RIGHT]:
        rotation -= 1

    surface.fill(white)

    for i, row in enumerate(maze):
        for j, letter in enumerate(row):
            if letter == "#":
                pygame.draw.rect(surface, black, pygame.Rect(size*j, size*i, size, size))

    rotated_img = pygame.transform.rotate(img, rotation)
    surface.blit(rotated_img, (x - rotated_img.get_width() // 2, y - rotated_img.get_height() // 2))

    pygame.display.update()