Sito web di notizie tecnologiche e videogames.

Pygame Shooter Parte 5: Aggiungere la grafica

48

Questo articolo è la quinta parte del progetto PyShooter, oggi vedremo come aggiungere un po’ di grafica al nostro videogioco sostituendo i rettangoli degli sprite con delle immagini.

Caricare le immagini

Per prima cosa definiamo una variabile che contiene il percorso della cartella dove sono memorizzate le immagini per il videogioco. Per fare questo useremo la libreria “os”:

from os import path
img_dir = path.join(path.dirname(__file__), 'img')

Immagine di background

Per caricare l’immagine di sfondo al videogioco aggiungiamo le seguenti righe di codice fuori dal game loop:

background = pygame.image.load(path.join(img_dir, 'background.png')).convert()
background_rect = background.get_rect()

Per disegnare lo sfondo nel game loop aggiungiamo la seguente riga di codice prima di disegnare gli sprite:

screen.fill(BLACK)
screen.blit(background, background_rect)
all_sprites.draw(screen)

In questo modo abbiamo caricato e disegnato correttamente un’immagine di sfondo al nostro videogioco.

Immagini degli sprite

Per caricare le immagini per gli sprites presenti nel videogioco, ovvero il player, i mob ed i proiettili procediamo nella medesima maniera dello sfondo.

background = pygame.image.load(path.join(img_dir, 'background.png')).convert()
background_rect = background.get_rect()
player_img = pygame.image.load(path.join(img_dir, "player.png")).convert()
meteor_img = pygame.image.load(path.join(img_dir, "mob.png")).convert()
bullet_img = pygame.image.load(path.join(img_dir, "bullet.png")).convert()

Una volta caricate le immagini dobbiamo sostituirle ai rettangoli degli sprite.

Per fare ciò modifichiamo le classi che descrivono gli sprite, per esempio nella classe Sprite verranno modificate le prime righe della funzione __init__() che descrivono lo sfondo dello sprite:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.transform.scale(player_img, (50, 38))
        self.image.set_colorkey(BLACK)

N.B: Nell’istruzione self.image = pygame.transform.scale(player_img, (50, 38)) vengono passate le dimensioni dell’immagine in modo che essa venga disegnata della grandezza che desideriamo.

La stessa operazione deve essere ripetuta anche per la classe Mob e Bullet.

Pygame Shooter Parte 5: Aggiungere la grafica

Conclusione

A questo punto in cui abbiamo aggiunto un po’ di grafica al nostro videogioco potreste esservi accorti che alcune le volte le collisioni non sono molto precise, per questo nel prossimo articolo vedremo come migliorare le collisioni del nostro videogioco!

Link al codice: code

Link al precedente articolo: Pygame Shooter Parte 4: Proiettili & Shooting

 

Commenti