2016-09-16 1 views
0

J'ai fait un petit jeu pour une tâche de devoirs en utilisant Pygame avec Livewires. J'ai essayé de le déboguer, mais sans succès; Je ne peux pas regarder les variables que je veux regarder avant que la boucle principale soit exécutée. Bien que je puisse appuyer sur F10 pour sauter la boucle principale, cela arrête simplement la fenêtre Autos and Watches de fonctionner; Apparemment, ils peuvent seulement enregistrer des vars lorsque le jeu est mis en pause par le débogueur.Comment déboguer l'application Pygame avec Visual Studio pendant l'exécution

Existe-t-il un moyen pour moi d'utiliser le débogueur pour regarder les vars en cours d'exécution? Parce que peu importe ce que je fais quand le débogueur est en pause, je ne peux pas regarder les données dans les objets du jeu que je veux regarder

+0

pourriez-vous partager une capture d'écran sur le résultat de votre côté? Ajoutez-vous vraiment un point d'arrêt dans votre application? Le point d'arrêt est-il atteint? Ce que je sais est que si le point d'arrêt a été frappé, pour afficher une valeur en utilisant DataTips, survolez simplement la souris sur n'importe quelle variable dans l'éditeur. Ou vous pouvez utiliser le débogage python interactif à chaque fois que le débogueur est cassé. –

+0

De quel résultat parlez-vous? Et oui, j'ai ajouté un point d'arrêt, et il a été frappé. Cependant, j'ai essayé votre suggestion de planer au-dessus de la souris, et après avoir passé le jeu à travers assez de cadres, j'ai réussi à voir les valeurs des objets du jeu. Ensuite, j'ai arrêté le débogueur, puis l'ai répété avec Break All. Après avoir appuyé sur F10 à quelques reprises, j'ai remarqué que je pouvais voir les valeurs de mes objets (bien que l'interface n'était pas intuitive). Donc, je suppose que mon problème est résolu. Merci :) – Tespy

Répondre

0

Grâce à la suggestion de Jack Zhai, j'ai compris.

  1. Lorsque le point d'arrêt est touché, Réactiver le débogueur (raccourci: F5)

  2. Jouer au point dans le jeu que vous voulez déboguer.

  3. Repause le débogueur en utilisant Break All (raccourci: Ctrl-Alt-Break)

  4. Appuyez sur F10 plusieurs fois; Cela lui permet de faire quelques pas de plus dans la boucle principale de Livewires.

  5. Dans la fenêtre des autos, il y a une entrée qui contient la liste des objets du jeu. Regardez à travers, jusqu'à ce que vous trouviez celui (s) que vous recherchez. Dans mon cas, la liste des objets était self._objects. L'objet que je cherchais était le second, qui en d'autres termes, était self._objects [1].

  6. Les flèches du ou des objets que vous recherchez affichent les membres de l'objet. Si vous souhaitez examiner les propriétés de l'objet de manière moins encombrante, utilisez le débogueur interactif pour affecter cet objet à une variable. De cette façon, vous pouvez regarder ses valeurs en tapant objectNameHere.objectValueHere dans la console de débogage interactive.

Dans mon cas, je devais taper joueur = self._objects [1] pour l'obtenir assignée, pourrait voir la position x du joueur par puis en entrant player.x dans la console de débogage.

-

Je sais cette réponse pourrait ne fonctionne que pour mon problème spécifique, donc si quelqu'un a une meilleure, s'il vous plaît poster pour l'amour des autres.

+0

heureux de savoir que vous avez résolu ce problème, merci pour votre partage, s'il vous plaît marquer votre solution comme la réponse :) –

+0

Bien sûr. Si quelqu'un d'autre affiche une meilleure réponse, je serai sûr de marquer le leur comme le meilleur :) – Tespy