Clone
3
Mit første PyGame vindue
Lerking edited this page 2025-04-22 09:23:16 +02:00

PyGame initialisering

Simpelt eksempel

Her er et simpelt eksempel på hvordan pygame initialiseres og kører et game loop.
Når brugeren lukker vinduet lukkes pygame modulet.

import pygame # Importér pygame modulet.

def main(): # Opret main() funktion
    pygame.init() # Initialisér pygame
    
    screen = pygame.display.set_mode((400, 600)) # Angiv vindue størrelse bredde - 400 og højde 600 pixels.
    screen.set_caption("Mit første pygame vindue") # Angiv vindue titel.
    
    clock = pygame.time.Clock() # Vi opretter en timer for skærmopdatering.
    
    running = True # Vi opretter en variable "running" og sætter denne til True (Sand)
    
    while running: # Vi starter et spil loop, som kører så længe "running" er sand (True) - Hvis "running" er falsk (False), forlader vi loopet.
        for event in pygame.event.get(): # Vi chekker alle events.
            if event.type == pygame.QUIT: # Er vinduet blevet lukket?
                running = False # Sær "running" til Falsk (False)
                
        # Vi sætter vinduets baggrundsfarve til mørkeblå (rød - 0, grøn - 0, blå - 255). Farveværdierne skal være mellem 0 og 255.
        screen.fill((0, 0, 255)) 
        
        # AL SPILOPDATERING FOREGÅR HER!
        
        pygame.display.flip() # Vis alle opdatering i vinduet.
        
        clock.tick(60) # Begræns FPS (opdateringer per sekund) til 60
        
    pygame.quit() # pygame lukkes
    
if __name__ == "__main__":
    main() # kør main() funktionen

Mere avanceret eksempel

Her følger et lidt mere avanceret eksempel.

import pygame # Importér pygame modulet.

def main(): # Opret main() funktion
    pygame.init() # Initialisér pygame
    
    screen = pygame.display.set_mode((1280, 720)) # Angiv vindue størrelse bredde - 1280 og højde 720 pixels.
    screen.set_caption("Mit første pygame vindue") # Angiv vindue titel.
    
    clock = pygame.time.Clock() # Vi opretter en timer for skærmopdatering.
    
    running = True # Vi opretter en variable "running" og sætter denne til True (Sand)
    
    dt = 0 # Vi opretter en variabel for delta tid "dt". Denne bruges til at lave glidende bevægelse, på skærmen.
    
    # Opretter en spiller position variabel "player_pos", og sætter den til midten af vinduet.
    player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2)

    while running: # Vi starter et spil loop, som kører så længe "running" er sand (True) - Hvis "running" er falsk (False), forlader vi loopet.
        for event in pygame.event.get(): # Vi chekker alle events.
            if event.type == pygame.QUIT: # Er vinduet blevet lukket?
                running = False # Sær "running" til Falsk (False)
                
        # Vi sætter vinduets baggrundsfarve til lilla (rød - 255, grøn - 0, blå - 255). Farveværdierne skal være mellem 0 og 255.
        screen.fill((255, 0, 255)) 
        
        # AL SPILOPDATERING FOREGÅR HER!
        # Vi tegner en rød cirkel, med radius = 40 pixels, i vinduet, på koordinaterne for "player_pos"
        # draw.circle() funktionen, tegner en cirkel, og bruger følgende input:
        # Hvilket vindue skal der tegnes på? - "screen"
        # Hvilken farve skal der tegnes med? - "red" - Rød. Du kan også angive farven med "(255, 0, 0)"
        # Hvor, i vinduet skal der tegnes? - "player_pos", som er en 2-vektor variabel (x-koordinat, y-koordinat)
        # Hvor stor radius, skal cirklen have? - 40 pixels
        pygame.draw.circle(screen, "red", player_pos, 40)

        # Vi tjekker nu, om der er trykket på nogle taster.
        keys = pygame.key.get_pressed()
        if keys[pygame.K_w]: # Hvis der er trykket på "w"
            player_pos.y -= 300 * dt # Vi ændrer y-koordinatet, således at cirkelen flytter sig 300 pixels op.
        if keys[pygame.K_s]: # Hvis der er trykket på "s"
            player_pos.y += 300 * dt # Vi ændrer y-koordinatet, således at cirkelen flytter sig 300 pixels ned.
        if keys[pygame.K_a]: # Hvis der er trykket på "a"
            player_pos.x -= 300 * dt # Vi ændrer x-koordinatet, således at cirkelen flytter sig 300 pixels til venstre.
        if keys[pygame.K_d]: # Hvis der er trykket på "d"
            player_pos.x += 300 * dt # Vi ændrer x-koordinatet, således at cirkelen flytter sig 300 pixels til højre.
        
        pygame.display.flip() # Vis alle opdatering i vinduet.
        
        dt = clock.tick(60) / 1000 # Begræns FPS (opdateringer per sekund) til 60
        
    pygame.quit() # pygame lukkes
    
if __name__ == "__main__":
    main() # kør main() funktionen