67
Inventory
Εικόνα 29.Διαθέσιμα αντικείμενα στο Inventory
Ένα από τα βασικά στοιχεία του παιχνιδιού είναι το Inventory, το οποίο αποθηκεύει τα
αντικείμενα που συλλέγονται από τον παίκτη. Η επιφάνεια του Inventory δημιουργήθηκε μέσω
της συνάρτησης draw_inventory_surface(), η οποία έχει ως στόχο την εμφάνιση των
αντικειμένων που ο παίκτης πρέπει να συλλέξει από τους NPCs. Η επιφάνεια γεμίζει αρχικά με
μαύρο χρώμα και στη συνέχεια τα αντικείμενα εμφανίζονται με συγκεκριμένο πλάτος (80
pixels) και απόσταση μεταξύ τους (20 pixels). Η εικόνα κάθε αντικειμένου φορτώνεται
δυναμικά, και αν το αντικείμενο δεν έχει συλλεχθεί, εμφανίζεται με ημιδιαφάνεια για να
υποδείξει στον παίκτη ότι δεν έχει αποκτηθεί ακόμη.
def draw_inventory_surface(surface, npcs):
#fill the surface with black colour
surface.fill(pygame.Color('black'))
#width of each point rectangle
rect_width = 80
spacing = 20
for i, npc in enumerate(npcs.values()):
rect_x = i * (rect_width + spacing) + 20
#load the collectable items image
collectable_image=pygame.image.load(npc
["collectable_image"]).convert_alpha()
#resize the image for the inventory
collectable_image = pygame.transform.scale(collectable_image, (rect_width,
rect_width))
if not npc["collectable_item_collected"]:
collectable_image.set_alpha(100)
surface.blit(collectable_image, (rect_x, 10))