70
font_path =resource_path( "sprites/AnonymousPro.ttf")
font = pygame.font.Font(font_path, 20)
intro_music_path = resource_path("sprites/intro.mp3")
story_image=pygame.image.load(resource_path
("sprites/story.png"))
#scale the image to fit screen
story_image=.transform.scale(story_image,(700, 700))
Έπειτα, με τη χρήση του ήχου πραγματοποιείται η αφήγηση με μουσική υπόκρουση
στο παρασκήνιο.
pygame.mixer.init()
intro_music_path = resource_path("sprites/intro.mp3")
pygame.mixer.music.load(intro_music_path)
pygame.mixer.music.set_volume(0.02)
pygame.mixer.music.play(1)
narraror_voice_path=resource_path("sprites/narrator.mp3")
narraror_voice = pygame.mixer.Sound(narraror_voice_path)
Το κείμενο της ιστορίας εμφανίζεται διαδοχικά μέσω της λίστας text_blocks, όπου κάθε
στοιχείο περιλαμβάνει το κείμενο της αφήγησης και τη διάρκεια εμφάνισης σε χιλιοστά του
δευτερολέπτου. Ο συγχρονισμός του κειμένου με τον ήχο της αφήγησης συγχρονίζεται με τη
χρήση του pygame.time.get_ticks().
text_blocks = [
("The hero …,5000),
("Their journey …,6000),…
for text, duration in text_blocks:
start_time = pygame.time.get_ticks()
while pygame.time.get_ticks() - start_time < duration:
…
text_surface = font.render(text, True, WHITE)
text_rect=text_surface.get_rect(midtop=(WIDTH//2, 20))
screen.blit(text_surface, text_rect)
Τέλος, δίνεται δυνατότητα στο χρήστη να παρακάμψει την εισαγωγή του παιχνιδιού, είτε
κάνοντας κλικ με το ποντίκι πάνω στο κουμπί Skip, είτε πατώντας το πλήκτρο Enter. Σταματάει
να παράγεται η φωνή του αφηγητή και να τρέχει η intro().
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_x, mouse_y = event.pos
if button_x<=mouse_x <= button_x + button_width and button_y
<= mouse_y <= button_y + button_height:
#stop the narrator's sound via click on skip button
narraror_voice.stop()
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
#stop the narrator's sound via pressing on enter key
narraror_voice.stop()
running = False