Première fenêtre avec Pyxel

Avant de commencer

Même si cela n'est pas forcément nécessaire, nous allons souvent retrouver les programmes Pyxel écrits avec des classes.

Si tu n'es pas à l'aise avec la Programmation Orientée Objet, il est fortement recommandé de lire ou relire les articles de ce site qui y sont consacrés (Niveau intermédiaire / Objets et classes) afin de ne pas être trop perdu.

Première fenêtre version simple

'''
Création d'une fenêtre simple avec Pyxel
@date : septembre 2024
@author : YF
'''

import pyxel

# constantes
LARGEUR = 320
HAUTEUR = 200
TITRE = "Premiers pas avec Pyxel"
FPS = 30

# initialisation de la fenêtre
pyxel.init(LARGEUR, HAUTEUR, TITRE, fps=FPS, quit_key=pyxel.KEY_Q)

# événements
def update():
    pass

# dessins
def draw():
    # on efface l'écran et on le remplit avec la couleur 6
    pyxel.cls(6)

# lancement du programme
pyxel.run(update,draw)

On remarque très vite la simplicité du code pour créer une fenêtre par rapport à ce que l'on peut voir quand on utilise Pygame.

import pyxel : il faut bien évidemment importer le module pyxel dont nous avons besoin.

pyxel.init : avec cette fonction, en une seule ligne, on initialise la fenêtre en passant en arguments sa largeur, sa hauteur, son titre, son taux de rafraîchissement et la touche qui permet de fermer cette fenêtre.

update() : autre fonction obligatoire d'un programme Pyxel. Elle permet, comme dans Pygame, de mettre à jour tous les composants de la fenêtre.

draw() : encore une fonction obligatoire dans notre programme. Comme son nom l'indique, on mettra dans cette fonction tout ce qui est dessiné dans notre fenêtre. Nous voyons qu'ici, l'écran a été effacé et rempli avec la couleur 6. Pour connaître les correspondances des couleurs dans Pyxel, il faut lire la documentation.

run() : fonction qui exécute notre programme Pyxel. Elle prend en arguments update et draw, la fenêtre doit être mise à jour en permanence et son contenu doit être dessiné.

Première fenêtre en version POO (Programmation Orientée Objet)

D'un point de vue programmation, cette version est plus correcte que la précédente.

'''
Création d'une fenêtre simple avec Pyxel (POO)
@date : septembre 2024
@author : YF
'''

import pyxel

# constantes
LARGEUR = 160
HAUTEUR = 120
TITRE = "Premiers pas avec Pyxel"
FPS = 30

class App():            # le nom n'a pas d'importance, il peut être changé
    def __init__(self):
        # initialisation
        pyxel.init(LARGEUR, HAUTEUR, TITRE, fps=FPS, quit_key=pyxel.KEY_Q)

    # événements
    def update(self):
        pass            # on ne fait rien pour l'instant dans cette partie

    # dessins
    def draw(self):
        # on efface l'écran et on le remplit avec la couleur 6
        pyxel.cls(6)

    # lancement de l'application
    def run(self):
        pyxel.run(self.update,self.draw)

# programme principal (main)
game = App()
game.run()

Rien de nouveau par rapport au programme précédent qui est juste écrit différemment.

Tout est regroupé dans une classe que nous avons appelée App().

Cette classe contient :

  • un constructeur dans lequel nous faisons appel à pyxel.init()
  • les fonctions update(), draw() et run()

Enfin dans le programme principal, nous créons un objet game (nous instancions, pour rappel) et nous exécutons le programme en faisant appel à la méthode run().