Concevoir un Labyrinthe
Transcription
Concevoir un Labyrinthe
ISN-Labyrinthe Concevoir un Labyrinthe……. Le principe est le suivant : On déplace un objet sur une image dont le fond est blanc et les murs du labyrinthe sont noirs. Comme chacun le sait : le blanc en RVB est (255,255,255) et le noir est (0,0,0). Suivant le sens de déplacement on teste si le pixel suivant a son rouge à 255, et dans ce cas on avance….. Si l’objet rencontre un mur son rouge sera à 0 et le test ne sera donc pas favorable…… Etape 1 : Dessiner dans Paint par exemple un labyrinthe dont la taille doit être celle de la fenêtre d’execution du programme. Par exemple 640X480 pixels. Et l’enregistrer avec l’extension png . Choisir une image avec une extension (png) pour l’objet ( pourquoi pas un Tux…) Faites glisser ces deux images dans votre sketch……. ISN-Labyrinthe Etape 2 : La structure du programme PImage parcours1; PImage tux; int x = 15; int y = 430; float tuxwidth = 20; float tuxheight = 40; Déclarations des variables void setup() { size(640, 480); smooth(); tux = loadImage("Tux.png"); parcours1 = loadImage("parcours.png"); } void draw() { background(255.0); image(parcours1, 0, 0); bougerTux(x + 10, y + 20); image(tux, x, y, tuxwidth, tuxheight); } Un projet possible D’autres niveaux…. Des scores…… Des points de vie… Des obstacles…. Comme d’habitude Le « draw » . On teste avec le milieu du « tux » void bougerTux(int cx, int cy) { if (keyPressed) { // Si une touche est appuyée if (key == CODED) { // Si c'est une touche "spéciale" (= ni une lettre ni un chiffre) if (keyCode == UP) { // Si c'est la flèche du haut if (red(get(cx, cy-1)) == 255) { y=y-1; } } La fonction est à compléter…. else if …………………………. …………………………. ………………………….. } } if (red(get(cx, cy-1)) == 255) teste si le rouge de la couleur du pixel } (cx,cy-1) vaut 255…..