7.2.5 - Μετακίνηση γραφικών στοιχείων με το πληκτρολόγιο

Όπως είδαμε σε προηγούμενη ενότητα μπορούμε να χρησιμοποιήσουμε το πληκτρολόγιο για να ελέγξουμε την κίνηση σχημάτων. Το ίδιο μπορεί να γίνει και για γραφικά στοιχεία. 

Αποθηκεύστε το πρόγραμμα avoid_v0.1 με όνομα avoid_v0.2 μέσα στον ίδιο φάκελο Module7.2.

Για να κινήσουμε το διαστημόπλοιο 

1. Αρχικοποιούμε τη θέση και την ταχύτητα του έξω από την κύρια επανάληψη με τις ακόλουθες εντολές:

# Initialization of spaceships position and speed ship_x = 380 ship_y = 285 ship_x_speed = 0 ship_y_speed = 0


2. Μέσα στην κύρια επανάληψη στο τμήμα επεξεργασίας συμβάντων προσθέτουμε τις ακόλουθες εντολές:

if event.type == pygame.KEYDOWN: if event.key == pygame.K_RIGHT or event.key == pygame.K_d: ship_x_speed = 5 if event.key == pygame.K_LEFT or event.key == pygame.K_a: ship_x_speed = -5 if event.key == pygame.K_DOWN or event.key == pygame.K_s: ship_y_speed = 5 if event.key == pygame.K_UP or event.key == pygame.K_w: ship_y_speed = -5 if event.type == pygame.KEYUP: if event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT: ship_x_speed = 0 if event.key == pygame.K_d or event.key == pygame.K_a: ship_x_speed = 0 if event.key == pygame.K_UP or event.key == pygame.K_DOWN: ship_y_speed = 0 if event.key == pygame.K_w or event.key == pygame.K_s: ship_y_speed = 0

12

3. Στο τμήμα με το λογική παιχνιδιού προσθέτουμε τις ακόλουθες εντολές έτσι ώστε το διαστημόπλοιο (που έχει μέγεθος 40x33 εικονοστοιχεία) να μη βγει εκτός της οθόνης. 

if ship_x >= 0 and ship_x <= 760: ship_x += ship_x_speed elif ship_x < 0: ship_x = 1 elif ship_x > 760: ship_x = 759 if ship_y >= 0 and ship_y <= 567: ship_y += ship_y_speed elif ship_y < 0: ship_y = 1 elif ship_y > 567: ship_y = 566


4. και αλλάζουμε την εντολή blit που σχεδιάζει το διαστημόπλοιο έτσι ώστε να χρησιμοποιεί τις μεταβλητές ship_x και ship_y:

screen.blit(spaceshipImg, (ship_x, ship_y))


34

Το τελικό πρόγραμμα μπορείτε να το λάβετε από εδώ.