Threads et boucle de jeu (pas d'erreur indiquée par l'ide)

Résolu/Fermé
C_Dedev - Modifié le 27 mars 2022 à 12:01
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 27 mars 2022 à 21:23
Bonjour,
mon problème se divise en plusieurs,
tout d'abord est il possible de créer un
Thread
dans un autre ?
si oui est il possible d'y mettre la boucle principale de mon jeu (
running
) ?
et si tout ca est normalement possible, pourquoi le programme se termine comme si il n'y avait pas de boucle ?
merci d'avance,
PS: je ne mets pas le programme car il est en 4 fichiers ce qui fait déjà 170 lignes
et que je n'ai aucune idée d'où peu provenir l'erreur si ce n'est pas des endroits cités précédements

3 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
27 mars 2022 à 13:13
bonjour,
tu peux aussi partager tes quatre fichiers.
0
voilà un lien de téléchargement
avec quelques assets pour que le code arrive a charger les images

https://www.mediafire.com/file/1qgjy5dfbploc1v/C_Dedev_Project_PP.zip/file

je suis vraiment désolé mais je n'ai pas mis de marques pour que vous vous y retrouviez,
j'y veillerai la prochaine fois.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
27 mars 2022 à 13:15
deux techniques possibles pour arriver à découvrir le soucis:
- simplifier le programme, éliminer tout ce qui ne contribue pas à l'erreur
- ajouter des print() pour comprendre ce qui se passe
0
je vais faire ca en attendant votre réponce merci
0
C_Dedev > C_Dedev
27 mars 2022 à 19:42
en vérifiant mon code comme vous me le conseillez je m'apercois entre autres que les threads ne servent pas a faire plusieurs boucles en meme temps mais servent a faire plusieurs choses en meme temps.
ce qui fait de mon script main un script très mal optimisé
je veillerai donc a l'avenir a ce que ce genre de choses ne soient plus présentes
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
27 mars 2022 à 19:55
pygame n'est pas conçu pour tourner dans un thread.
0
voilà qui réponds a mes quetions.
il semblerait donc que je doive recommencer une grande partie de mon travail et de facon différente.
RIP moi

quoi qu'il en soit merci beaucoup et bonne journée
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > C_Dedev
27 mars 2022 à 20:27
j'ai été horrifié par:
exec(open("UtilEx.py").read())

Pourquoi ne pas appeler une fonction de l'autre module?
0
C_Dedev > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
27 mars 2022 à 20:37
de quel autre module ?
cette solution que je sais très peu optimisée a été choisie suite a de nombreux problèmes
par exemple j'ai d'abord essayé d'importer la variable depuis MainMenu vers ProfileMenu.
N'y arrivant pas j'ai trouvé une solution sur le net qui proposait de le faire sous la forme d'un parametre de fonction ,ca n'a pas marché.
j'ai donc exporté cette fonction dans un autre script (UtilEx),cela marchait mais j'ai remarqué que depuis UtilEx je pouvais importer la variable seule (a condition d'éxécuter ce meme script avant) voilà comment j'en suis arrivé là
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > C_Dedev
27 mars 2022 à 21:23
On dirait que, depuis main.py, tu essaies d'exécuter du code qui se trouve dans UtilEx.py.
Est-ce exact?
Un exemple d'un module qui exécute une fonction d'un autre module:
module1:
import module2
module2.travail()

module2:
def travail():
    print("au boulot")

J'ai l'impression que, chaque fois que tu as rencontré un obstacle, tu es parti dans la mauvaise direction, sur une fausse piste, et que tu as construit une solution absurdement compliquée pour un problème simple.
Je suggère que tu recommences à ton point de départ.
0