Μάθημα : PyGame

109 - Μανώλης Αργυρός

Ενότητες μαθήματος

ΜΑΘΗΜΑ 3: Κίνηση

#Τι θα μάθουμε: μεταβλητές που αλλάζουν σε κάθε καρέ, αναπήδηση, if

import pygame
from sys import exit

pygame.init()
screen = pygame.display.set_mode((800, 400))
pygame.display.set_caption('Μπάλα που αναπηδά')
clock = pygame.time.Clock()

# Μεταβλητές
ball_x = 100
ball_y = 100
speed_x = 5    # πόσα pixels μετακινείται οριζόντια σε κάθε καρέ
speed_y = 4    # πόσα pixels μετακινείται κάθετα σε κάθε καρέ

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

    # Μετακινούμε τη μπάλα
    ball_x = ball_x  + speed_x      # το ίδιο με: ball_x += speed_x
    ball_y = ball_y + speed_y

    # Αν χτυπήσει σε τοίχο, αλλάζουμε κατεύθυνση (το + γίνεται - και αντίστροφα)
    if ball_x > 780 or ball_x < 20:
        speed_x = -speed_x
    if ball_y > 380 or ball_y < 20:
        speed_y = -speed_y

    # Σβήνουμε ΟΛΟ τον πίνακα και ζωγραφίζουμε ξανά, σε κάθε καρέ.
    # Έτσι φαίνεται ότι κινείται (σαν φυλλάδιο με σχεδιάκια που γυρνάς γρήγορα).
    screen.fill('skyblue')
    pygame.draw.circle(screen, 'orange', (ball_x, ball_y), 20)

    pygame.display.update()
    clock.tick(60)

-----------------------------------------------------------------------------------

ΑΣΚΗΣΗ
1. Κάνε τη μπάλα πιο γρήγορη (αύξησε το speed_x και το speed_y).
2. Σβήσε τη γραμμή screen.fill(...) και δες τι γίνεται. Γιατί συμβαίνει αυτό;
3. Πρόσθεσε δεύτερη μπάλα με δικές της μεταβλητές (ball2_x, ball2_y, ...).