TUTORIEL #01 - Déplacer un carré avec les touches de directions
But : déplacer un carré avec les touches de directions

1. Première
Programmation impérative : utilisation obligatoire de variables globales dans
update
.
import pyxel
# taille de la fenetre 128x128 pixels
# ne pas modifier
pyxel.init(128, 128, title="Nuit du c0de")
# position initiale du vaisseau
# (origine des positions : coin haut gauche)
vaisseau_x = 60
vaisseau_y = 60
def vaisseau_deplacement(x, y):
"""déplacement avec les touches de directions"""
if pyxel.btn(pyxel.KEY_RIGHT):
if (x < 120) :
x = x + 1
if pyxel.btn(pyxel.KEY_LEFT):
if (x > 0) :
x = x - 1
if pyxel.btn(pyxel.KEY_DOWN):
if (y < 120) :
y = y + 1
if pyxel.btn(pyxel.KEY_UP):
if (y > 0) :
y = y - 1
return x, y
# =========================================================
# == UPDATE
# =========================================================
def update():
"""mise à jour des variables (30 fois par seconde)"""
global vaisseau_x, vaisseau_y
# mise à jour de la position du vaisseau
vaisseau_x, vaisseau_y = vaisseau_deplacement(vaisseau_x, vaisseau_y)
# =========================================================
# == DRAW
# =========================================================
def draw():
"""création des objets (30 fois par seconde)"""
# vide la fenetre
pyxel.cls(0)
# vaisseau (carre 8x8)
pyxel.rect(vaisseau_x, vaisseau_y, 8, 8, 1)
pyxel.run(update, draw)
2. Terminale
Programmation orientée objet
import pyxel
class Jeu:
def __init__(self):
# taille de la fenetre 128x128 pixels
# ne pas modifier
pyxel.init(128, 128, title="Nuit du c0de")
# position initiale du vaisseau
# (origine des positions : coin haut gauche)
self.vaisseau_x = 60
self.vaisseau_y = 60
pyxel.run(self.update, self.draw)
def vaisseau_deplacement(self):
"""déplacement avec les touches de directions"""
if pyxel.btn(pyxel.KEY_RIGHT) and self.vaisseau_x<120:
self.vaisseau_x += 1
if pyxel.btn(pyxel.KEY_LEFT) and self.vaisseau_x>0:
self.vaisseau_x += -1
if pyxel.btn(pyxel.KEY_DOWN) and self.vaisseau_y<120:
self.vaisseau_y += 1
if pyxel.btn(pyxel.KEY_UP) and self.vaisseau_y>0:
self.vaisseau_y += -1
# =====================================================
# == UPDATE
# =====================================================
def update(self):
"""mise à jour des variables (30 fois par seconde)"""
# deplacement du vaisseau
self.vaisseau_deplacement()
# =====================================================
# == DRAW
# =====================================================
def draw(self):
"""création et positionnement des objets (30 fois par seconde)"""
# vide la fenetre
pyxel.cls(0)
# vaisseau (carre 8x8)
pyxel.rect(self.vaisseau_x, self.vaisseau_y, 8, 8, 1)
Jeu()