Βιβλίο
Ενότητα 8 - Τμήμα 5 - Διαστημόπλοιο
Ενότητα 8 - Τμήμα 5 - Διαστημόπλοιο
Απαιτήσεις ολοκλήρωσης
Προβολή
Μετά την ολοκλήρωση αυτής της ενότητας οι φοιτητές θα μπορούν να:
- εντοπίζουν διάφορες κλάσεις μέσα σε ένα παιχνίδι με κώδικα Python
- περιγράφουν τα μέρη της κλάσης και τη χρησιμότητά τους
- εντοπίζουν τα αντικείμενα μιας κλάσης
- αναγνωρίζουν τα χαρακτηριστικά και τις τιμές των αντικειμένων μια κλάσης
- τροποποιούν τον κώδικα του παιχνιδιού για να το καταστήσουν πιο εύκολο ή πιο δύσκολο
8.5.2 - Κίνηση με τα πλήκτρα του πληκτρολογίου
Κατεβάστε τον κώδικα από εδώ και ανοίξτε τον με το Thonny.
Μελετήστε τις γραμμές 41 μέχρι 59
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
Σε αυτές τις γραμμές η pygame ελέγχει αν κάποιο από τα πλήτρα με τα βελάκια ΑΡΙΣΤΕΡΑ, ΔΕΞΙΑ, ΠΑΝΩ, ΚΑΤΩ ή τα πλήκτρα d, a , s, w έχουν πατηθεί (KEYDOWN) ή δεν είναι πλέον πατημένα (KEYUP) και μετακινεί το διαστημόπλοιο ανάλογα.
Στις γραμμές 30 με 33 που είναι εκτός της κύριας επανάληψης ορίζουμε την αριχκή θέση του διαστημοπλοίου και κάνουμε 0 την αρχική του ταχύτητα σε κάθε άξονα.
ship_x = 500
ship_y = 380
ship_x_speed = 0
ship_y_speed = 0
τέλος στις γραμμές 74 μέχρι 87 που εμφανίζουμε το διαστημόπλοιο το κινούμε και σιγουρεύουμε το ότι θα παραμείνει μέσα στην οθόνη
screen.blit(spaceshipImg, (ship_x, ship_y))
if ship_x >= 0 and ship_x <= 984:
ship_x += ship_x_speed
elif ship_x < 0:
ship_x = 1
elif ship_x > 984:
ship_x = 983
if ship_y >= 0 and ship_y <= 728:
ship_y += ship_y_speed
elif ship_y < 0:
ship_y = 1
elif ship_y > 728:
ship_y = 727
print(ship_x, ship_y)
Η τελική έκδοση, έτοιμη για παιχνίδι βρίσκεται εδώ.