Outils pour utilisateurs

Outils du site


faire_tourner_des_jeux_pygame_sur_une_page_web

Faire tourner des jeux pygame sur une page web

Comparatif des moteurs

Installer et tester pybag

  • pip install pygbag –user –upgrade
  • Rajouter ce dossier dans le path :
    • Menu démarrer > Modifier les variables d'environnement système (taper “PATH” suffit)
    • Dans la fenêtre Propriétés système > Paramètres systèmes avancés > Variables d'environnement
    • Dans la partie Variables utilisateurs : modifier Path
    • Rajouter (“Nouveau”) : C:\Users\micro\AppData\Roaming\Python\Python311\Scripts
    • Redémarrer Visual Studio Code
    • La commande pygbag devrait à présent fonctionner
  • Attention : votre programme doit gérer l'asynchrone. Un programme graphique minimal pour pygbag (dessine juste des rectangles jusqu'à ce qu'on appuie sur la barre espace), doit être codé dans un fichier nommé main.py :
import asyncio
import random
import pygame
 
pygame.init()
screen = pygame.display.set_mode((1280, 768))
pygame.mouse.set_visible(False)
 
async def main():
#def main():
 
  running = True
  while running:
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
        running = False
      elif event.type == pygame.KEYDOWN:
        if event.key == pygame.K_SPACE:
          running = False
    pygame.draw.rect(screen, (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), pygame.Rect((random.randint(0, 1279), random.randint(0, 767)), (random.randint(0, 1279), random.randint(0, 767))))
    pygame.display.flip()
    await asyncio.sleep(0)
  pygame.quit()
 
#main()
asyncio.run(main())

Note : j'ai laissé en commenté les appels “non asynchrones” qu'on aurait tendance à mettre pour un exécutable local. Mais en réalité le mode asynchrone fonctionnera aussi pour un programme interprété dans une fenêtre d'exécution.

  • Pour exécuter le programme ci-dessus : ligne de commande pygbag main.py
    • Un mini-serveur web sera ensuite lancé en attente sur le port 8000 (vérifier le port en texte de la ligne de commande)
    • http://localhost:8000/ permet ensuite d'exécuter le jeu depuis un navigateur
    • Le contenu de build/web peut être déployé sur un serveur web pour être exécuté depuis n'importe où
faire_tourner_des_jeux_pygame_sur_une_page_web.txt · Dernière modification : 2023/06/27 17:16 de tickleman