![]()
TU APPRENDRAS ICI... |
comment les personnages peuvent se déplacer dans une grille, c'est-à-dire de cellule en cellule, pour poursuivre un objet. |
EXAMPLES |
| Example: Un requin poursuit Nemo |
Cette méthode reçoit comme paramètre la position de l'objet poursuivi. Pour éviter que le requin n'attrape Nemo immédiatement, nous ne déplaçons le requin que tous les cinq cycles de simulation. Programme: # Gg7.py from gamegrid import * # --------------------- class Fish --------------------- class Fish(Actor): def __init__(self): Actor.__init__(self, "sprites/snemo.gif") def act(self): self.move() if self.getX() == 9: self.turn(180) self.setHorzMirror(True) if self.getX() == 0: self.turn(180) self.setHorzMirror(False) # --------------------- class Shark --------------------- class Shark(Actor): def __init__(self): Actor.__init__(self, True, "sprites/shark.gif") def act(self): if self.nbCycles % 5 == 0 and not nemo.isRemoved(): self.setDirection(self.getLocation(). getCompassDirectionTo(nemo.getLocation())) self.move() aNemo = getOneActorAt(self.getLocation(), Fish) if aNemo != None: aNemo.removeSelf() makeGameGrid(10, 10, 60, Color.red, "sprites/reef.gif", False) nemo = Fish() addActor(nemo, Location(0, 1)) shark = Shark() addActor(shark, Location(7, 9)) show() doRun() |
À RETENIR... |
| À chaque déplacement, le poursuivant peut choisir l'une des 8 cellules voisines. La direction optimale est déterminée à l'aide de la méthode getCompassDirectionTo(). Pour ralentir le poursuivant, tu peux programmer sa méthode act() de manière à ce qu'il ne se déplace que tous les cinq cycles de simulation. |
À FAIRE PAR TOI-MÊME |
|
![]()