class player { // Οι ιδιότητες (χαρακτηριστικά) ενός player float x, y; // συντεταγμένες κέντρου float x1, y1; // συντεταγμένες πάνω αριστερής γωνίας float d; // διάμετρος float speed; // ταχύτητα color xroma; PImage img; boolean visible; // αν είναι ορατός ή όχι int lives; int br; //1 blue 2 red // Κατασκευαστής - Κώδικας που δημιουργεί ένα νέο αντικείμενο wall // με δικές του τιμές για κάθε ιδιότητα player(float px, float py, float pd, float pspeed, color pxroma, int pbr, PImage pimg) { x = px; y = py; d = pd; speed = pspeed; xroma = pxroma; visible = true; lives = 5; br = pbr; img = pimg; x1 = x - d/2; y1 = y - d/2; } // Μέθοδοι - Τι μπορεί να κάνει κάθε αντικείμενο player. // Κάθε μέθοδος (ικανότητα) γράφεται σαν ένα ξεχωριστό μικρό // πρόγραμμα και έχει ένα δικό της όνομα. // Κώδικας που εμφανίζει ένα αντικείμενο player. // Αν η ιδιότητα visible δεν είναι true, τότε το player δεν θα εμφανίζεται. void display() { if (visible == true) { x1 = x - d/2; y1 = y - d/2; image(img, x1, y1); //fill(xroma); //stroke(0); //ellipse(x, y, d, d); } fill(xroma); textSize(20); if (br == 1) // σημαίνει blue-red text("LIVES: " + lives, 20, 20); else text("LIVES: " + lives, 700, 20); } // Κώδικας για να κινείται (κίνηση = αλλαγή των συντεταγμένων θέσης) // Η κίνηση θα γίνεται στον κάθετο άξονα μόνο (πάνω-κάτω). // Αν ακουμπήσει πάνω ή κάτω, τότε να παραμένει ακίνητο εκεί. void move() { if (visible == true) { y += speed; if (y <= 0 || y >= height ) { speed = 0; lives -= 1; if ( br == 1 ) y = height/2 - 80; else y = height/2 + 80; } } if (lives == 0) { y = -1000; visible = false; } } // Κώδικας που αλλάζει την ταχύτητα του player. // H νέα τιμή της ταχύτητας δίνεται σαν παράμετρος (pspeed) void setSpeed(float pspeed) { speed = pspeed; } void setLives(int pl) { lives = pl; } void revive() { visible = true; x = width/2; if ( br == 1 ) y = height/2 - 80; else y = height/2 + 80; } void checkCollision(wall pw) { if ( ( ( x + d/2 >= pw.x && x + d/2 <= pw.x + pw.w) || ( x - d/2 <= pw.x + pw.w && x - d/2 >= pw.x ) ) && ( ( y + d/2 >= pw.y && y + d/2 <= pw.h + pw.y ) || ( y - d/2 <= pw.y + pw.h && y - d/2 >= pw.y) ) ) { speed = 0; lives -= 1; if ( br == 1 ) y = height/2 - 80; else y = height/2 + 80; pw.x = -100; } } }// τέλος class