IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Jeux Snake Arduino Esplora (Arduino + Ecran TFT)


Sujet :

Arduino

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Novembre 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ecole d'ingénieur

    Informations forums :
    Inscription : Novembre 2018
    Messages : 20
    Points : 14
    Points
    14
    Par défaut Jeux Snake Arduino Esplora (Arduino + Ecran TFT)
    Bonjour,

    J'aimerai recréer le jeu snake avec mon Arduino.
    J'aimerai le déplacer avec le joystick et uniquement avec celui-ci.
    Mais dans mon programme, dès que je relâche le joystick il n'avance plus hors j'aimerais qu'il continu d'avancer. Le joystick servirai donc juste de "guide de direction".

    Une idée ?

    En vous remerciant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    #include <Esplora.h>
    #include <TFT.h>
    #include <SPI.h>
     
        int xPos;
        int yPos=EsploraTFT.height()/2;
     
    void setup() {
      // put your setup code here, to run once:
    Serial.begin(9600);
     EsploraTFT.begin();
    // Met l'écran en noir
    EsploraTFT.background(0,0,0);
       // Met le carré en blanc
     EsploraTFT.fill(255,255,255);
     }
     
     
    void loop() {
     
      int depx = Esplora.readJoystickX(); 
         int depy = Esplora.readJoystickY();
     
       // Initialisation du snake sur l'écran 
     EsploraTFT.rect(xPos, yPos,4,4 );
     
     // Fait avancer la moto d'une vitesse initial
    xPos=xPos+1;
    // Le dirige vers le bas 
      if(depy>128){
        xPos=xPos-1;
        yPos=yPos+1;
     }
     
     
    delay(100);
     
    }

  2. #2
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 010
    Points : 2 331
    Points
    2 331
    Par défaut
    Bonjour Josh.Bateman
    Citation Envoyé par Josh.Bateman Voir le message
    Bonjour,
    Mais dans mon programme, dès que je relâche le joystick il n'avance plus hors j'aimerais qu'il continu d'avancer. Le joystick servirai donc juste de "guide de direction".
    Pour éviter ceci, il ne faut pas utiliser directement la valeur du joystick mais l'utiliser pour décider de l'incrément (xIncrement) du déplacement. Ainsi, lorsque on relâche le manche, c'est cette valeur reste donc le déplacement reste.
    Je n'ai pas d'Esplora et j'ai fait l'exercice avec un simple joystick. J'ai juste ajouté que, si l'on presse le bouton du joystick, cela remet l'incrément à 0.

    Un petit bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #define joyXpin A0
     
    #define joySwitch 7
     
    int xJoy, xPos = 0, xIncrement = 0;
     
    void setup()
    {
    	Serial.begin(115200);
     
    	pinMode(joySwitch, INPUT_PULLUP);
    }
     
    void loop()
    {
    	xJoy = map(analogRead(joyXpin), 0, 1023, 0, 255);
     
    	if (xJoy > 129){xIncrement = 1;}
    	if (xJoy < 129){xIncrement = -1;}
     
    	xPos += xIncrement;
    	Serial.println("xPos = " + String(xPos));
     
    	delay(100);
     
    	if (digitalRead(joySwitch) == LOW)             // Si le bouton poussoire de joystick est pressé
    	{
    		xIncrement = 0;
    	}
    }
    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

Discussions similaires

  1. Modéliser le jeux snake en UML
    Par paloma22 dans le forum UML
    Réponses: 1
    Dernier message: 27/03/2012, 19h34
  2. [Jeux] Objets déplacables sur l'ecran.
    Par Muetdhiver dans le forum wxWidgets
    Réponses: 3
    Dernier message: 26/11/2008, 16h37
  3. [Ecran TFT]Est-on limité à la résolution indiquée
    Par NicolasJolet dans le forum Périphériques
    Réponses: 6
    Dernier message: 06/09/2006, 21h25
  4. achat ecran tft par internet
    Par elekis dans le forum Périphériques
    Réponses: 7
    Dernier message: 27/07/2006, 22h17
  5. Nettoyage d'un ecran TFT
    Par Faith's Fall dans le forum Périphériques
    Réponses: 9
    Dernier message: 10/03/2005, 18h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo