![]()
TU APPRENDRAS ICI... |
comment utiliser le clavier pour contrôler les personnages d'un jeu. |
Dans des fonctions appelées fonctions de rappel (callbacks), tu définis ce qui doit se passer lorsqu'une touche du clavier est enfoncée ou relâchée. Ces fonctions ne sont pas appelées directement par le programme, mais automatiquement par le système lorsqu'une touche est actionnée. Les fonctions de rappel sont enregistrées dans makeGameGrid() à l'aide des paramètres nommés keyPressed or keyReleased in. La méthode getKeyCode()permet de déterminer le code numérique de la touche enfoncée. |
EXAMPLES |
| Example1: Contrôler Pacman avec les touches fléchées |
La fonction de rappel keyCallback(e)définit ce qui doit se passer lorsqu'une touche fléchée est enfoncée. Cette fonction reçoit le paramètre e, qui permet de déterminer le code de la touche enfoncée à l'aide de getKeyCode(). Pour les touches fléchées, les codes numériques sont 37, 38, 39 et 40.
Programme: # Gg6.py from gamegrid import * # --------------------- class Pacman --------------------- class Pacman(Actor): def __init__(self): Actor.__init__(self, True, "sprites/pacman.gif", 2); def tryToEat(self): self.show(0) actor = getOneActorAt(self.getLocation(), Pill); if (actor != None): actor.hide() self.show(1) # --------------------- class Pill --------------------- class Pill(Actor): def __init__(self): Actor.__init__(self, "sprites/pill_0.gif"); def keyCallback(e): keyCode = e.getKeyCode() if keyCode == 37: # left paki.setDirection(180) elif keyCode == 38: # up paki.setDirection(270) elif keyCode == 39: # right paki.setDirection(0) elif keyCode == 40: # down paki.setDirection(90) paki.move() paki.tryToEat() makeGameGrid(10, 10, 60, Color.red, False, keyPressed = keyCallback) paki = Pacman() addActor(paki, Location(0,0)) for i in range(10): addActor(Pill(), getRandomEmptyLocation()) show() doRun() |
À RETENIR... |
| La fonction de rappel keyCallback(e) est appelée automatiquement par le système lorsqu'une touche du clavier est enfoncée. Elle est enregistrée dans makeGameGrid() à l'aide du paramètre keyPressed. La méthode getKeyCode()permet de déterminer le code de la touche enfoncée. Pour les touches fléchées, les codes numériques sont 37, 38, 39 et 40. |
À FAIRE PAR TOI-MÊME |
|
![]()