| HomeTortue graphiqueGPanelRobotique WebTigerPython |
| Python - Online |
![]()
TU APPRENDRAS ICI... |
que les interactions entre les personnages jouent un rôle très important dans la programmation de jeux. Pour détecter les collisions dans une grille, tu vérifies si plusieurs Actors se trouvent dans la même cellule. La méthode getActorsAt() renvoie une liste de tous les Actors qui se trouvent dans une cellule donnée. Si une cellule contient au maximum un Actor, tu peux utiliser la méthode getOneActorAt(), qui renvoie l'Actor ou None si aucun Actor ne se trouve dans cette cellule. |
EXAMPLES |
| Example1: Pacman avale des pilules |
Programme: # Gg5.py from gamegrid import * # ------------- class Pacman -------------------------- class Pacman(Actor): def __init__(self): Actor.__init__(self, "sprites/pacman.gif", 2) def act(self): self.move() self.tryToEat() self.showNextSprite() if self.getX() == 9: self.turn(90) self.setHorzMirror(True) if self.getX() == 0: self.turn(270) self.setHorzMirror(False) 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") # ---------------- main ------------------------------ makeGameGrid(10, 10, 60, Color.red, False) paki = Pacman() addActor(paki, Location(0, 0)) for i in range(20): addActor(Pill(), getRandomEmptyLocation()) show() doRun() |
À RETENIR... |
| Avec l'instruction actor = getOneActorAt(self.getLocation, Pill), tu peux vérifier si une pilule se trouve à la position actuelle. Si c'est le cas, la condition if actor != None: renvoie True et tu peux faire disparaître la pilule avec actor.hide(). |
À FAIRE PAR TOI-MÊME |
|
![]()