et je ne sais pas comment en empaqueter dans un nom clair
j'ai tester def, class, nom = truc and truc2
rien ne semble fonctionner parfaitement, je passe à coté de quelque chose simple sans doute
voila un exemple
import pygame, sys
from pygame.locals import *
red = (196, 19, 19)
pygame.init()
root = pygame.display.set_mode((200, 200), 1, 16)
bt1 = pygame.draw.rect(root, red, (50, 50, 30, 30))
pygame.display.flip()
condi1 = 1
condi2 = 2
condi3 = 1
condi4 = 2
# condition_bt1 = ???
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if bt1.collidepoint(pygame.mouse.get_pos()) and (pygame.mouse.get_pressed()[0] != 0) \
and condi1 == 1 and condi2 == 2 and condi3 == 1 and condi4 == 2:
msg = pygame.font.SysFont(None, 20)
msg1 = msg.render("super", 1, red)
root.blit(msg1, (100, 60))
pygame.display.flip()
condi1 += condi1
voila pour l'exemple, mais j'ai des if avec 10 variable à vérifier, le code fait des millier de ligne c'est pas facile de s'y retrouver malgres des commentaire abondant
Tu pourrais les regrouper sous forme de variables booléennes définies dans des lignes avant la condition et ensuite tu les assembles
Par exemple :
cond1 = bt1.collidepoint(pygame.mouse.get_pos()) and (pygame.mouse.get_pressed()[0] != 0)
cond2 = condi1 == 1 and condi2 == 2 and condi3 == 1 and condi4 == 2
if cond1 and cond2 :
Tu pourrais les regrouper sous forme de variables booléennes définies dans des lignes avant la condition et ensuite tu les assembles
Par exemple :
cond1 = bt1.collidepoint(pygame.mouse.get_pos()) and (pygame.mouse.get_pressed()[0] != 0)
cond2 = condi1 == 1 and condi2 == 2 and condi3 == 1 and condi4 == 2
if cond1 and cond2 :
Merci pour ta réponce
enfaîte c'est ça mon problème, c'est que ça ne marche pas ce que tu me dis, et que j'ai déja essayé.
import pygame, sys
from pygame.locals import *
red = (196, 19, 19)
pygame.init()
root = pygame.display.set_mode((200, 200), 1, 16)
bt1 = pygame.draw.rect(root, red, (50, 50, 30, 30))
pygame.display.flip()
cond1 = bt1.collidepoint(pygame.mouse.get_pos()) and (pygame.mouse.get_pressed()[0] != 0)
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if cond1:
msg = pygame.font.SysFont(None, 20)
msg1 = msg.render("super", 1, red)
root.blit(msg1, (100, 60))
pygame.display.flip()
le probleme est que la sourie ne réagi plus la (ou dans pas comme il faut dans mon programme)
les variable (condi1 ext) mis a part.
je voulais tout inclure moi dans un seul intitulé.
je note l'idée pour les variable ce qui est déja bien dans un 1er temps.
alors pour comprendre, la boucle ne prend pas en compte ce qu'il y a avant ?
Si, mais il faut que la ligne de code soit exécutée à chaque évènement pour que la valeur de la variable soit mise à jour, sinon tu as toujours la même valeur.
C'est pour ça que tu as une boucle, pour que ton bout de code se réexécute à chaque évènement (clic ou mouvement de souris, appui sur des touches...).
Blond, bouclé, toujours le sourire aux lèvres...
utiliser un nom parlant pour les if (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.
Blond, bouclé, toujours le sourire aux lèvres...