Pyxel peut détecter l'appui sur une touche du clavier et de quelle touche il s'agit.
Deux méthodes de Pyxel sont utilisables :
btn(code_touche)
: renvoie un booléen si la touche désignée par le code code_touche a été appuyée pendant la frame courantebtnr(code_touche)
: idem, mais en évitant les répétitions associées au maintien appuyé d'une toucheLa première méthode sera utilisée lorsqu'une touche sera a priori maintenue appuyée, comme une touche de direction par exemple, et la deuxième quand un seul appui est souhaitable, comme le déclenchement d'un tir par exemple ou une action unique.
Ces méthodes seront appelées dans la fonction update()
.
Voir la référence Pyxel pour le code des touches.
Voila par exemple un script qui permet de déplacer un carré dans la fenêtre à l'aide des 4 touches de direction :
import pyxel
class Vaisseau:
def __init__(self, x, y):
self.x = x
self.y = y
def move(self):
"""déplacement avec les touches de direction"""
if pyxel.btn(pyxel.KEY_RIGHT): # équivaut à : if pyxel.btn(pyxel.KEY_RIGHT) == True:
if (self.x < 120) :
self.x = self.x + 1
if pyxel.btn(pyxel.KEY_LEFT):
if (self.x > 0) :
self.x = self.x - 1
if pyxel.btn(pyxel.KEY_DOWN):
if (self.y < 120) :
self.y = self.y + 1
if pyxel.btn(pyxel.KEY_UP):
if (self.y > 0) :
self.y = self.y - 1
def draw(self):
pyxel.rect(self.x, self.y, 8, 8, 1)
class Jeu:
def __init__(self, h, l, titre):
pyxel.init(h, l, title = titre)
self.vaisseau = Vaisseau(60, 60)
# Lancement du jeu
pyxel.run(self.update, self.draw)
def update(self):
self.vaisseau.move()
def draw(self):
pyxel.cls(0)
self.vaisseau.draw()
########################
# PROGRAMME PRINCIPAL #
########################
Jeu(128, 128, "Super Jeu")
Les attributs mouse_x et mouse_y du module Pyxel permettent de connaître les coordonnées actuelle de la souris.
La méthode mouse(True/False)
permet d'afficher/ne pas afficher le curseur de la souris ( False
= ne pas afficher par défaut ).