Προσθήκη Score
Για να προσθέσουμε κείμενο πάνω στην οθόνη γραφικών ακολουθούμε 3 βήματα
1. Καθορισμός γραμματοσειράς: font = pygame.font.Font(None, 36) (εδώ έχουμε ορίσει μόνο το μέγεθος της γραμματοσειράς)
2. Δημιουργία κειμένου : text = font.render(str(score),False,(0,128,0),(128,0,0)) ( το περιεχόμενο της μεταβλητής score που είναι αριθμός
μετατρέπεται σε χαρακτήρες str(score) . Στη συνέχεια γίνεται χρήση των χρωμάτων (0,128,0) σαν χρώμα κειμένου και το (128,0,0) σαν
χρώμα φόντου , για τη μετατροπή του κειμένου σε γραφικό.
3. Τοποθετείται το γραφικό κειμένου στη θέση 1,1 : screen.blit(text,(1,1))
Μια μεταβλητή που ελέγχει το score πριν την επανάληψη γίνεται 0 : score = 0
Κάθε φορά που συγκρούονται οι μπάλες δηλ. ( x=x1 και y = y1 ) το score αυξάνεται κατά 1 και εμφανίζεται στην οθόνη.
if x == x1 and y==y1 :
score += 1
Μορφή κώδικα μετά τις μεταβολές :
<pre>
import pygame
import os
import random
_image_library = {}
def get_image(path):
global _image_library
image = _image_library.get(path)
if image == None:
canonicalized_path = path.replace('/', os.sep).replace('\\', os.sep)
image = pygame.image.load(canonicalized_path)
_image_library[path] = image
return image
pygame.init()
screen = pygame.display.set_mode((400, 300))
done = False
clock = pygame.time.Clock()
x = 30
y = 30
x1 = 3
y1 = 3
d = 1
score = 0
font = pygame.font.Font(None, 36)
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
pressed = pygame.key.get_pressed()
if pressed[pygame.K_UP]: y -= 3
if pressed[pygame.K_DOWN]: y += 3
if pressed[pygame.K_LEFT]: x -= 3
if pressed[pygame.K_RIGHT]: x += 3
x1 += d*3
if x>=400 : x=3
if x<=0 : x=400
if y>=300 : y=3
if y<=0 : y=300
if x1>=400 or x1<=0:
d = (-1)*d
y1 +=3
if y1>300 : y1=0
if x == x1 and y==y1 :
score += 1
text = font.render(str(score),False,(0,128,0),(128,0,0))
screen.fill((0, 0, 0))
screen.blit(get_image('ball.png'), (x, y))
screen.blit(get_image('ball.png'), (x1, y1))
screen.blit(text,(1,1))
pygame.display.flip()
clock.tick(60)
</pre>