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

Flash Discussion :

Déplacement au clic


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Par défaut Déplacement au clic
    Salut tout le monde ;
    Je ne parviens à trouver sur le web que des documents au déplacement via le clavier (flèches).
    Or j'aimerais pouvoir déplacer un objet en cliquant, probablement avec _x et _y du curseur. Puis poussé plus loin, pouvoir faire gérer à mon objet les collisions et lui faire contourner les blocs gênants =)

    Please help =/

  2. #2
    BnA
    BnA est déconnecté
    Membre éclairé Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Par défaut
    Salut

    Je ne sais pas si j'ai bien compris ta requête, mais en attendant voici un petit fichier qui permet de dépacer un objet jusqu'à l'endroit où tu as cliqué avec ta souris.

    Pour ce qui est de la gestion des collisions, visite ceci...

    Tutoriaux FLASHKIT.com (en)

    Tu devrais pouvoir y trouver ce que tu cherches assez rapidement.
    Fichiers attachés Fichiers attachés

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Par défaut
    Génial ;o !

    En ce qui concerne le code, si je traduis bien (veux comprendre ><)


    _root.onMouseDown = function() {
    //au clic, executer {
    x1 = _root._xmouse;
    //definir x1
    x2 = _root._ymouse;
    //definir x2
    mc.onEnterFrame = function() {
    //executer 1x sur "mc" {
    if (this._x != x1 || this._y != x2) {
    //si _x de mc != a la souris ou _y != a la souris
    this._x += (x1-this._x)/2;
    //_x de mc = _x(mc) + (x1 - _x(mc)) /2 (des maths, en somme^^)
    this._y += (x2-this._y)/2;
    //_y de mc = _y(mc) + (x2 - _y(mc)) /2
    }
    };
    };


    D'après mes notions de PHP ça devrait coller. Cependant je ne trouve pas ou (comment ?) regler la vitesse de la balle, j'imagine que c'est dans la formule de matheux ?
    Quéqung est d'humeur matheuse ? =D

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    Citation Envoyé par Alcarion
    Génial ;o !

    En ce qui concerne le code, si je traduis bien (veux comprendre ><)


    _root.onMouseDown = function() {
    //au clic, executer {
    x1 = _root._xmouse;
    //definir x1
    x2 = _root._ymouse;
    //definir x2
    mc.onEnterFrame = function() {
    //executer 1x sur "mc" {
    if (this._x != x1 || this._y != x2) {
    //si _x de mc != a la souris ou _y != a la souris
    this._x += (x1-this._x)/2;
    //_x de mc = _x(mc) + (x1 - _x(mc)) /2 (des maths, en somme^^)
    this._y += (x2-this._y)/2;
    //_y de mc = _y(mc) + (x2 - _y(mc)) /2
    }
    };
    };


    D'après mes notions de PHP ça devrait coller. Cependant je ne trouve pas ou (comment ?) regler la vitesse de la balle, j'imagine que c'est dans la formule de matheux ?
    Quéqung est d'humeur matheuse ? =D
    onEnterFrame, te permet de tester tout le temps s'il y a un clique, c'est comme s'il recharger ton image à l'infini.

    (x1-this._x)/2 cela veut dire que tu bouge de la moitié de la distance entre ton point de la souris et ton image pour les coordonnées x.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Par défaut
    Un souci sur le déplacement, avec cette formule mon clip a une vitesse proportionelle (plus c'est loin, plus ça va vite, et ça freine douuucement woah).

    J'ai essayé avec this._x = x1 etc., mais c'est de la relocalisation de point Oo'
    En somme, y'a t'il une astuce pour avoir une vitesse constante (et un arrêt brutal et sauvage) ?

    (toutes mes tentatives, la balle part loin, très loin et ne revient jamais. Va balle, je ne te hais point)

  6. #6
    Membre éprouvé
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Par défaut
    ben au lieu de le déplacer de la moitié de la distance qui le sépare de son point d'arrivé tu le déplace de toujours la même valeur.
    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
     
    VITESSE=10;
    _root.onMouseDown = function() {
    //au clic, executer {
    x1 = _root._xmouse;
    //definir x1
    x2 = _root._ymouse;
    //definir x2
     
    // définition des vitesse horizontale et verticale
    // utilisation des théorème de thales :
    // vitesseX/(x1-_x) == vitesseY/(x2-_y) == VITESSE / L
    // avec L = longueur totale à parcourir
    // on obtient les mêmes formules avec de la trigonométrie (cosinus et sinus)
     
    // utilisation du théorème de pythagore :
    // L² = (x1-_x)² + (x2-_y)²
    // on connais VITESSE, x1, _x, x2 et _y
    // on en déduit les formules des vitesses horizontales et verticales
    L=Math.sqrt((x1-_x)*(x1-_x)+(x2-_y)*(x2-_y));
    vitesseX=VITESSE*(x1-_x)/L;
    vitesseY=VITESSE*(x2-_y)/L;
     
    mc.onEnterFrame = function() {
    //executer 1x sur "mc" {
     
    // l'arrét devient un peu plus compliqué
    // on s'arrète lorsqu'au prochain coup on dépacera le point d'arrêt
    if (Math.abs(x1-_x)<Math.abs(vitesseX)) {
    // Arrêt
    _x=x1;
    _y=x2;
    } else {
    // sinon on déplace le clip à vitesse constante
    _x+=vitesseX;
    _y+=vitesseY;
    }
    };
    };
    ca c'est pour avoir une vitesse identique quelque soit la distance au point.
    si tu t'en fout de ca tu peux remplacer la définition de L par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L = VITESSE*(x1+x2-_x-_y);
    en fait ca fera que le clip mettra toujours le meme temps pour aller au point.
    il ira donc plus vite si il est plus loin mais toujours à vitesse constante (tu me suis ? )

    tu peux varier la vitesse en modifiant VITESSE.
    (dans le deuxieme cas il faut la mettre à 0.1 voire moins)

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    déplacer un objet en cliquant: Utilise la propriété drag and drop de flash.


    gérer à mon objet les collisions: Utilise la propriété hitTest();

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/04/2012, 16h13
  2. Réponses: 5
    Dernier message: 23/08/2011, 22h19
  3. Gérer l'événement "déplacement souris + clic gauche"
    Par vladvad dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/10/2008, 00h47
  4. Limiter le déplacement de la souris
    Par el_bouleto dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/11/2002, 00h56
  5. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 17h11

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