Cours 3 Jeux Python

Les Bodures et Projectils

Dans ce cours, vous allez apprendre comment programmer des bordures et des projectils !

I. Les bodures

 Pour définir vos bordures, vous devez d’abord savoir ou les placer. Pour cela while window :

print(game.player.rect.x)

Ensuite, en bougeant votre personnage, vous pourrez déterminer ou votre bodure vas se situer. Pour moi, c’est -15, 1030. Vous faites la même chose pour l’axe y. Pour moi c’est 5, 555. Puis vous créez vos bordure en ajoutant derrière :

if game.pressed.get(pygame.K_w)
and game.player.rect.y > 5

Et vous faites cela pour chacune de vos modules de direction.

Tips: Si vous souhaitez être très précis pour vos bordure, vous pouvez changer self.velocity = 1.

II. TITRE

Info: J ai redéfinis le trie de mes classes en les divisant dans différents fichiers. Je vous conseille fortement de faire pareils. Vous allez donc créer votre classe projectile:

class Balle(pygame.sprite.Sprite):

                 def __init__(self):
                 super().__init__()
                 self.velocity = 10
                 self.image = pygame.image.load(‘imgg/bullet.png’)

                 self.rect = self.image.get_rect()

Si vous mettez votre classe dans un nouveau fichier n’oublier pas import pygame en haut de votre code. Mais ensuite il faut lancer ce projectile.

III. Lancement du projectils

Dans votre class Player,  vous allez créer une nouvelle ligne self. :

self.all_projectile = pygame.sprite.Group()

Puis vous allez créer une nouvelle méthode:

def launch_bullet(self):
self.all_projectile.add(Balle())

N’oublier pas, si vous etes dans votre fichier player d’importer votre classe Balle depuis votre ficher projectils(from projectils import Balle)

 

IV. Lier votre projectils à une touche.

 

TEXTE Pour cela vous devez aller en bas de while window entre KEYDOWN et KEYUP:

if event.key == pygame.K_i:
game.player.launch_bullet()

Puis vous l’afficher en dessous de vos ligne sbkg.blit:

game.player.all_projectile.draw(sbkg)

Ligne 18 et 37,38

V. Réduire, agrandire la taille de votre image

Pour réduire la taille de votre projectile (par exemple), voous irez dans votre classe Balle et dans self. :

self.image = pygame.transform.scale(self.image, (40, 40))

Tips: vous pouvez le faire pour n’importe quel image. Mais attention, si vous l’agrandissez cela pixelisera votre image. Donc je vous conseille de prendre les plsu grande image possible pour améliorer la définission de votre jeux.

 

 

 

 

 

VI. Position de votre image

Pour positionner votre image correctement, vous allez déja lier votre player et votre projectile. Dans votre méthode launch_bullet :

self.all_projectile.add(Balle(self))

Puis dans votre class Balle:

def __init__(self, player):

Ensuite dans self. toujours dans votre class Balle():

self.rect.x = player.rect.x + 40
self.rect.y = player.rect.y + 5

Ici + 40 et + 5 permettent d’ajuster la localisation de l’image par rapport à votre joueurs. Pour moi c’est 40 et 5 mais pour vous, cela peut être différent.

 

 

 

VII. Mouvement de la balle

Pour son mouvement vous allez dans self.: 

self.player = player

Et vous allez créer une méthode dans votre class Balle():

def move(self):
self.rect.x += self.velocity
if self.rect.x > 1080:
self.player.all_projectile.remove(self)

Puis dans while window:

for projectile in game.player.all_projectile:
projectile.move()

Super!! vous avez réussit !!

 

 

 

https://www.flaticon.com