Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Pygame]Attendre x seconde avant de reblitter

Une image

21 juillet 2014 à 14:26:14

Salut

Je me suis fait un mini projet de stand de tir mais je n'arrive pas a faire attendre python avant de reblitter l'image j'ai essayer avec time.sleep mais ca marche pas (tout s'arrete) et lorsque je faic comme le code ci dessous la cible atuer n'arrete pas de bouger :

#Importation des bibliothèques nécessaires
import pygame
from pygame.locals import *
import random
#Initialisation de la bibliothèque Pygame
pygame.init()

x_atuer = random.randint(50,640)
y_atuer = random.randint(50,379)
temps = 0

fenetre = pygame.display.set_mode((640, 379))
pygame.display.set_caption("standDeTir")

fond = pygame.image.load("fond.jpg").convert() #affiche image et la convertit
fenetre.blit(fond, (0,0))#blit de l'image
cible = pygame.image.load("cible.png").convert_alpha()

position_cible = cible.get_rect()
fenetre.blit(cible, position_cible)

atuer = pygame.image.load("atue.png").convert_alpha()
fenetre.blit(atuer, (x_atuer, y_atuer))

pygame.display.flip()
 
continuer = 1
#Boucle infinie
while continuer:
	temps = temps + 1
	x_atuer = random.randint(50,640)
	y_atuer = random.randint(50,379)
	for event in pygame.event.get():   
		if event.type == QUIT:     
			continuer = 0      
		if event.type == KEYDOWN:
			if event.key == K_DOWN:
				position_cible = position_cible.move(0,10)
			if event.key == K_LEFT:
				position_cible = position_cible.move(-10,0)
			if event.key == K_RIGHT:
				position_cible = position_cible.move(10,0)
			if event.key == K_UP:
				position_cible = position_cible.move(0,-10)	
		
	
	
	fenetre.blit(fond, (0,0))
	fenetre.blit(cible, position_cible)
	fenetre.blit(atuer, (x_atuer, y_atuer))
	#Rafraichissement
	pygame.display.flip()
	if temps == 999:
		fenetre.blit(atuer, (x_atuer, y_atuer))
		pygame.display.flip()
	

Merci d'avance

-
Edité par theunkutboy 21 juillet 2014 à 14:30:13

  • Partager sur Facebook
  • Partager sur Twitter
JumpMen : Un jeu d'agilité et de saut crée avec unity : http://www.mediafire.com/download/7wcs7wi70mxhnqj/JumpMenBeta1.exe
Anonyme
21 juillet 2014 à 14:34:51

La fonction wait du package pygame.time te permet d'attendre x millisecondes comme ça: pygame.time.wait(x).
  • Partager sur Facebook
  • Partager sur Twitter
21 juillet 2014 à 14:49:15

Merci mais je le place dans ou dehors de la boucle principale (Desolé mais je ne connais pas cette fonction)
  • Partager sur Facebook
  • Partager sur Twitter
JumpMen : Un jeu d'agilité et de saut crée avec unity : http://www.mediafire.com/download/7wcs7wi70mxhnqj/JumpMenBeta1.exe
Anonyme
21 juillet 2014 à 15:16:49

Ça fonctionne comme time.sleep(x), mais au lieu de stopper toute autre activité, ça n'interrompt pas les autres évènements. Met le donc avant de blitter fenetre, à, toi de voir ce que tu veux faire. Ensuite je ne connais pas tes attentes et je n'ai aucune expérience en PyGame donc je ne peux pas t'aider en détail.
  • Partager sur Facebook
  • Partager sur Twitter
22 juillet 2014 à 0:01:50

Il faut à un moment remettre la valeur de temps à zéro ...
  • Partager sur Facebook
  • Partager sur Twitter

Python c'est bon, mangez-en. 

31 janvier 2024 à 18:15:44 - Message modéré pour le motif suivant : Message complètement hors sujet


31 janvier 2024 à 18:27:04

@SamySaibi Bonsoir, merci de ne pas déterrer d'ancien sujet surtout pour ne rien en dire. Abstenez vous.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ici.

  • Partager sur Facebook
  • Partager sur Twitter