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

JavaScript Discussion :

Probleme condition if


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 20
    Points
    20
    Par défaut Probleme condition if
    Bonjour, avant de vous mettre le code j'explique mon projet. J'ai créé une sorte de petit jeu ,une animation flash dans laquelle je place des pixel "gagnant" et où l'utilisateur devra trouver l'endroit grace a des indice. Afin de l'aider je lui place un petit radar qui va lui dire s'il se rapproche d'un pixel "gagnant" ou non (un genre de chaud , froid sauf avec 5 couleur ).

    Voila le 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    for (i=0;i<x.length;i++)
    {
    if((x.item(i).firstChild.data+50>=mouse_x) &&( x.item(i).firstChild.data-50<=mouse_x))
    {
    if((y.item(i).firstChild.data+50>=mouse_y) && (y.item(i).firstChild.data-50<=mouse_y))
    {
    radar = 5;
    alert("radar 5");
    }
    }
    if((x.item(i).firstChild.data+40>=mouse_x) && (x.item(i).firstChild.data-40<=mouse_x))
    {
    if((y.item(i).firstChild.data+40>=mouse_y) && (y.item(i).firstChild.data-40<=mouse_y))
    {
    radar = 4;
    alert("radar 4");
    }
    }
    if((x.item(i).firstChild.data+30>=mouse_x) && (x.item(i).firstChild.data-30<=mouse_x))
    {
    if((y.item(i).firstChild.data+30>=mouse_y) && (y.item(i).firstChild.data-30<=mouse_y))
    {
    radar = 3;
    alert("radar 3");
    }
    }
    if((x.item(i).firstChild.data+20>=mouse_x) && (x.item(i).firstChild.data-20<=mouse_x))
    {
    if((y.item(i).firstChild.data+20>=mouse_y) && (y.item(i).firstChild.data-20<=mouse_y))
    {
    radar = 2;
    alert("radar 2");
    }
    }
    if((x.item(i).firstChild.data+10>=mouse_x) && (x.item(i).firstChild.data-10<=mouse_x))
    {
    if((y.item(i).firstChild.data+10>=mouse_y) && (y.item(i).firstChild.data-10<=mouse_y))
    {
    radar = 1;
    alert("radar 1");
    }
    }
    }
    x.item(i).firstChild.data est une variable qui contient la coordonnée 'x' d'un pixel gagnant.
    y.item(i).firstChild.data : idem que x.item(i).firstChild.data sauf avec 'y'.
    mouse_x est une variable qui contient la coordonnée 'x' de la souris
    mouse_y : idem que mouse_x sauf avec 'y'.

    Voila mon probleme (je vais prendre un exemple se sera plus simple) :
    Imaginons que l'utilisateur clic au coordonnée 600,387 et que le pixel "gagnant" se trouve au coordonnée 600,400
    Dans ce cas la, mon programme fonctionne parfaitement et me renvoie "radar 2".
    Mais si l'utilisateur clic au coordonnée 600, 422.
    Dans ce cas le programme me renvoie toujours "radar 1".
    En clair, des que mouse_y > y.item(i).firstChild.data le programme renvoie toujours "radar 1"

    Pourtant quand je remplace les variables par des valeurs fixe (par exemple 600,400 pour le pixel gagnant et 600,422 pour les coordonnée de la souris) je ne devrais pas rentrer dans le if.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if((600+10>=600) && (600-10<=600)
    {
    if((400+10>=422) && (400-10<=422))
    {
    radar = 1;
    alert("radar 1");
    }
    }
    Comme on peut le voir je ne devrai pas rentrer dans le deuxieme if.

    Je bloque depuis des heures et j'espere que vous pouvez m'aider.

    Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    ta version "en dur" force le type numérique.
    Or tes ".data" doivent de type caractère (type par défaut) et le test ne doit plus être valable.
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parseInt(x.item(i).firstChild.data, 10)
    pour chaque calcul utilisant un ".data" (ou ".value", d'ailleurs)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    merci, j'avais justement resolu mon probleme.

    En faite j'ai juste fait :

    if((x.item(i).firstChild.data>=mouse_x-10) && (x.item(i).firstChild.data<=mouse_x+10))

    a la place de

    if((x.item(i).firstChild.data+10>=mouse_x) && (x.item(i).firstChild.data-10<=mouse_x))

    Mais je ne savais pas pourquoi ca l'avait resolu.
    Grace a toi j'ai la reponse.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme conditions sous ie
    Par MrAl1985 dans le forum Langage
    Réponses: 1
    Dernier message: 03/06/2010, 20h19
  2. Probleme condition sur select PL/SQL
    Par l4r3nZu dans le forum Oracle
    Réponses: 19
    Dernier message: 02/06/2010, 17h08
  3. [JSTL] probleme condition
    Par toine62 dans le forum Taglibs
    Réponses: 6
    Dernier message: 30/12/2008, 12h50
  4. Probleme condition If ($var!="")
    Par bb62 dans le forum Langage
    Réponses: 2
    Dernier message: 01/10/2008, 11h49
  5. Probleme Condition IF et ELSE
    Par arround dans le forum Langage
    Réponses: 2
    Dernier message: 23/10/2005, 01h21

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