CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Python : problème threads et pygame

Anon_0_Yme
Anon_0_Yme
Niveau 1
12 novembre 2020 à 22:34:58

Salut ! Je suis actuellement en train de coder une bataille navale en ligne en python, j'ai codé une interface graphique fonctionnelle avec pygame, le problème c'est que le joueur 1 ne peut pas fermer sa fenêtre lorsque son jeu attend un tir du joueur 2 (et inversement), pour régler cela j'ai cru comprendre qu'il fallait utiliser des threads (un thread qui gère la fermeture de la fenêtre et un deuxième l'exécution de la bataille navale en elle-même). Mais ça ne fonctionne pas, non seulement la fenêtre ne se ferme pas, mais en plus le cœur de la bataille navale (avec les demandes de tirs, les réceptions et envois de données à l'adversaire avec un socket...) ne s'exécute pas non plus. Voici un code qui reprend la même structure que le code de ma bataille navale, mais pour que ce soit plus court le programme colorie en rouge les pixels sur lesquels on clique dans la fenêtre (en tout cas c'est ce que j'aurais aimé qu'il fasse) :
from threading import Thread import pygame from pygame.locals import * classe héritière de Thread qui gère la fermeture de la fenetre : class Quit(Thread): def __init__(self): Thread.__init__(self) def run(self): while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() classe héritière de Thread qui gère le coloriage des pixels en rouge : class Prog(Thread): def __init__(self): Thread.__init__(self) def run(self): while True: for event in pygame.event.get(): if event.type == MOUSEBUTTONUP: pygame.draw.rect(fenetre, (255, 0, 0), (event.pos[0], event.pos[1], 1, 1)) pygame.init() fenetre = pygame.display.set_mode((640, 480)) th1 = Quit() th2 = Prog() th1.start() th2.start()

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment