Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Pygame] Problème collision

    6 décembre 2015 à 20:36:47

    Bonjour à tous et merci d'avance aux personnes qui peuvent m'aider, voilà j'ai un jeu à effectuer qui marche très bien sans les collisions, le problème est qu'en intégrant la collision j'ai dû créer des classes, j'espère m'y être bien pris mais pour l'instant j'ai une erreur :"*** non keyword arg after keyword arg" et j'ai surement d'autre petites erreurs ayant changé tout mon code.

    Je vous le joins:

    # -*- coding: cp1252 -*-
    import pygame
    import random
    import math
    from pygame.locals import *
    
    pygame.init()
    
    class Voiture :
        
        def __init__(self):
    
            self.voiture = pygame.image.load("Gova4.jpg").convert()
            self.direct = self.voiture
            self.rect = self.direct.get_rect()
            self.X = 125
            self.Y = 560
    
        def update (self): #fonction pour mise à jour position rect voiture
    
            self.position = (self.X,self.Y)
            self.rect = pygame.rect(self.position, (35,65)) #mise à jour du rect
    
        def mouvement (self,direction):
    
            if direction == 'droite':
                self.direct = self.voiture
                self.X -=9
                
            if direction == 'gauche':
                 
                self.direct = self.voiture
                self.X += 9
    
    class Ennemi :
    
        def __init__(self,ennemi1,ennemi_voie1):
    
            self.ennemi1 = pygame.image.load("Ennemi42.png").convert()
            ennemi_voie1 = random.randint(20,55)#apparait sur un x aléatoire en 20 et 55
            self.direct1 = self.ennemi1
            self.rect = self.direct1.get_rect()
    
        def update_ennemi (self):
    
            self.position_ennemi = self.ennemi1.get_rect(center = ennemi_voie1, -70)
            self.rect = pygame.rect(self.position_ennemi, (35,65))
    
        
    
    width = 300
    height = 600
    
    fenetre = pygame.display.set_mode((width,height),RESIZABLE)#affichage de la fenêtre
    
    pygame.key.set_repeat(100, 10)#maintien des touches
    pygame.display.set_caption("aaaa")
    
    fond = pygame.image.load("Asphalt.jpg").convert()#autoroute
    fenetre.blit(fond, (0,0))
    pygame.display.flip()
    
    continuer = 1
    
    while continuer:
    
        fenetre.blit(fond, (0,0))
        fenetre.blit(voiture,position)
        fenetre.blit(ennemi1,(position_ennemi))
        
        for i in range (21000):#de 1 à 21000 régle notre vitesse
            if i == 20999:
                vitesse1 = random.randint(1,4)#vitesse aléatoire de 1 à 4
                position_ennemi[1] += vitesse1#augmente la vitesse aléatoire
                
                if position_ennemi[1] > 800:#différents reset ppur les ennemis
                    ennemi_voie1 = random.randint(20,55)
                    position_ennemi = ennemi1.get_rect(center = (ennemi_voie1,-20))
               
                    
        for event in pygame.event.get():#recherche d'évenements
                
            if event.type == pygame.locals.QUIT: #echap ferme tout
                continuer = 0
            elif event.type == KEYDOWN and event.key == K_ESCAPE:
                continuer = 0
                pygame.quit()
                        
            if event.type == KEYDOWN:
                if event.key == K_LEFT and position[0]>6:
                    voiture.update()
                    ennemi.ennemi_update()
                    if joueur.rect.colliderect(ennemi):
                        print('Game Over')
                if event.key == K_RIGHT and position[0]<260:
                    voiture.update()
                    ennemi.ennemi_update()
                    if joueur.rect.colliderect(ennemi):
                        print('Game Over')    
    
        pygame.display.flip()
        
    
        
                     
        
              
    

    Merci encore aux personnes souhaitant m'aider.

    • Partager sur Facebook
    • Partager sur Twitter

    [Pygame] Problème collision

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown