J'ai un petit problème avec un petit jeux que j'ai créé grace à pygame. Donc tout d'abord je suis très débutant dans le monde de la programmation et donc j'ai créé mon jeu dans vaisseau qui tire des petits missiles mais voila ils sont censés détruire des cailloux qui tombent ou autre sauf que des fois ces missiles passent au travers . J'aimerais donc savoir si vous pouviez m'expliquer à quoi c'est du et s'il y ava
#Importation des bibliothèques nécessaires
import pygame
from pygame.locals import *
from random import randint
#Initialisation de la bibliothèque Pygame
pygame.init()
#variable
u=0
i=0
j=0
x=randint(0, 650)
score=0
#Création de la fenêtre
fenetre = pygame.display.set_mode((650, 366))
myfont = pygame.font.SysFont("monospace", 30)
score_display = myfont.render(str(score), 1, (255,0,0))
#chargement des images
fond = pygame.image.load('C:/Users/TIM/Desktop/test/background.jpg').convert_alpha()
loose = pygame.image.load('C:/Users/TIM/Desktop/test/loose.png').convert_alpha()
boum=pygame.image.load('C:/Users/TIM/Desktop/test/boum.png').convert_alpha()
vaisso = pygame.image.load('C:/Users/TIM/Desktop/test/vaisso.png').convert_alpha()
#####get rect des objets
position_vaisso = vaisso.get_rect()
position_vaisso = position_vaisso.move(325,183)
class Obus(pygame.sprite.Sprite):
def __init__(self,image):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('C:/Users/TIM/Desktop/test/obus.png').convert_alpha()
self.rect = self.image.get_rect()
def update(self):
self.rect.y -= 2
class Sofiane(pygame.sprite.Sprite):
def __init__(self,image):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('C:/Users/TIM/Desktop/test/caillou.png').convert_alpha()
self.rect = self.image.get_rect()
self.rect.x=randint(50, 600)
self.rect.y=0
def update(self):
self.rect.y += 3
class Bonbon(pygame.sprite.Sprite):
def __init__(self,image):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('C:/Users/TIM/Desktop/test/bonbon.png')
self.rect=self.image.get_rect()
self.rect.x=randint(50,600)
self.rect.y=0
def update(self):
self.rect.y+=1
obus_liste = pygame.sprite.Group()
soso_liste = pygame.sprite.Group()
bonbon_liste=pygame.sprite.Group()
#Variable qui continue la boucle si = 1, stoppe si = 0
continuer = 1
clock = pygame.time.Clock()
fenetre.blit(fond, (0,0))
fenetre.blit(vaisso, position_vaisso)
pygame.display.flip()
#Boucle infinie
pygame.key.set_repeat(40, 30)
while continuer==1:
time = clock.tick(60)
for event in pygame.event.get(): #On parcours la liste de tous les événements reçus
if event.type == QUIT: #Si un de ces événements est de type QUIT
continuer = 0 #On arrête la boucle
if event.type==KEYDOWN:
if event.key == K_DOWN:
position_vaisso=position_vaisso.move(0,10)
if event.key == K_UP:
position_vaisso=position_vaisso.move(0,-10)
if event.key == K_RIGHT:
position_vaisso=position_vaisso.move(10,0)
if event.key == K_LEFT:
position_vaisso=position_vaisso.move(-10,0)
if event.key == K_SPACE:
if len(obus_liste) < 5:
obus = Obus("obus.png,x,y")
obus_liste.add(obus)
obus.rect.x = position_vaisso.x
obus.rect.y = position_vaisso.y
obus_liste.update()
for bonbon in bonbon_liste:
if bonbon.rect.y<0 :
bonbon_lise.remove(bonbon)
for obus in obus_liste:
if obus.rect.y<0 :
obus_liste.remove(obus)
elif obus.rect.colliderect(soso.rect):
obus_liste.remove(obus)
elif obus.rect.colliderect(bonbon.rect):
bonbon_liste.remove(bonbon)
score=score+1
for soso in soso_liste:
if soso.rect.colliderect(position_vaisso):
continuer=0
if soso.rect.y>370:
soso_liste.remove(soso)
#################création des sofiane########################
if i==100:
soso = Sofiane("caillou.png")
soso_liste.add(soso)
i=0
else:
i=i+1
soso_liste.update()
if j==150:
bonbon=Bonbon("bonbon.png")
bonbon_liste.add(bonbon)
j=0
else:
j=j+1
bonbon_liste.update()
score_display = myfont.render(str(score), 1, (255,0,0))
################affichage des images #######################
fenetre.blit(fond, (0,0))
obus_liste.draw(fenetre)
soso_liste.draw(fenetre)
fenetre.blit(vaisso, position_vaisso)
bonbon_liste.draw(fenetre)
fenetre.blit(score_display, (600, 20))
#Rafraichissement
pygame.display.flip()
while u != -1:
fenetre.blit(loose, (0,0))
pygame.display.flip()
for event in pygame.event.get():
if event.type == QUIT:
u=-1
it des solutions.
Porblème pygame
× 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.