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.
[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.