Partage
  • Partager sur Facebook
  • Partager sur Twitter

Porblème pygame

pygame

    25 mars 2019 à 23:34:56

    Bonjour

    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.

    • Partager sur Facebook
    • Partager sur Twitter

    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.
    • Editeur
    • Markdown