Ενότητα 6 - Τμήμα 0 - Επανάληψη!

Ιστότοπος: ΕΛ/ΛΑΚ Moodle
Μάθημα: Εργαστήριο Python
Βιβλίο: Ενότητα 6 - Τμήμα 0 - Επανάληψη!
Εκτυπώθηκε από: Guest user
Ημερομηνία: Κυριακή, 5 Μαΐου 2024, 12:00 AM

Περιγραφή

6.0.1 - Κίνηση σχεδίων

Αν θέλουμε να δώσουμε κίνηση σε ένα αντικείμενο που θα σχεδιάσουμε μέσα στην κύρια μας επανάληψη με τη χρήση του προτύπου της pygame θα πρέπει:

  • Πρώτο : δημιουργούμε ένα τμήμα αρχικοποίησης εντολών εκτός του τμήματος επανάληψης (loop), όπου καθορίζουμε την αρχική θέση (x , y) του αντικειμένου και την αρχική ταχύτητα για κάθε άξονα:
     
    rect_x = 50    # X αρχική θέση του ορθογωνίου
    rect_y = 50    # Y αρχική θέση του ορθογωνίου
    speed_x = 5   # X ταχύτητα του ορθογωνίου
    speed_y = 5   # Y ταχύτητα του ορθογωνίου

  • Δεύτερο : μέσα στην κύρια επανάληψη αλλάζουμε τη θέση ανάλογα με την ταχύτητα:

    rect_x += speed_x
    rect_y += speed_y

  • Τρίτο : Αλλάζουμε την εντολή σχεδίασης χρησιμοποιώντας τις καθορισμένες μεταβλητές:

    pygame.draw.rect(screen, WHITE, [rect_x, rect_y, 50,50])


6.0.2 - Αναπήδηση



Για να κάνουμε ένα αντικείμενο να αναπηδά στις άκρες της οθόνης θα αλλάξουμε την κατεύθυνση της ταχύτητας του αντικειμένου όταν φτάσει σε κάποιο άκρο.

if rect_x >= 650 or rect_x <= 0: speed_x *= -1 if rect_y >= 450 or rect_y <= 0: speed_y *= -1

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

6.0.3 - Χρήση του ποντικιού

Για να μάθουμε την θέση του ποντικιού μέσα σε μία οθόνη με γραφικά που δημιουργήθηκε με την pygame χρησιμοποιούμε την εντολή,

pos = pygame.mouse.get_pos()

μέσα στην κύρια επανάληση, έτσι ώστε ανάλογα με την εντολή clock.tick() η θέση να διαβάζετε συνεχώς.

Η μεταβλητή pos είναι μία πλειάδα από δύο αριθμούς που μπορούμε να χρησιμοποιήσουμε σαν συντεταγμένες για την μετακίνηση ενός σχήματος. Οι εντολές που θα χρησιμοποιήσουμε είναι:

x = pos[0] # δίνουμε την x θέση του ποντικιού στη μεταβλητή x
y = pos[1] # δίνουμε την y θέση του ποντικιού στη μεταβλητή y

και για να σχεδιάσουμε ένα σχήμα στις θέσεις x,y :

pygame.draw.circle(screen, RED, [ x,  y], 30, 0)