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 :

[FLASH MX2004] Course de bateaux


Sujet :

Flash

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 42
    Par défaut [FLASH MX2004] Course de bateaux
    Flasheuses, flasheurs...

    BONJOUR !!!

    Voila mon objectif final, mon reve, mon ambition, ma passion, me petite auto, mon fromage Le reve. http://oos.moxiecode.com/examples/boatrace/index.html

    Alors, plusieurs choses :
    - Comment faire pour que ce soit impossible de faire tourner le bato quand il avance pas.
    - Comment faire pour qu'il soit bloké par les "murs" : J'ai essayé de mettre une varable "blok" sur 0 sur ma première Image, et de mettre un hitTest sur le mur qui la change en 1, et un test qui fait bouger le bato que si blok est sur 0, mais sa marchait pas et ct nul.
    - Comment donner cette irrésisitble sensation de vitesse, au volant d'un beau cabriolet, un pull autour des épaules flottant dans le vent, une belle femme pendue a son biceps...

    Je vous informe poliment que le code de mon reve se presente comme suit :

    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
     
    onClipEvent( Load ){ 
       angle = 0 
       } 
     
    function buildMap (map) { 
       mW = map[0].length 
       mH = map.length 
       trace(mW * tileW + " - " + mH * tileW) 
       for ( var i = 0; i < mH; i++){ 
           for ( var j = 0; j < mW; j++){ 
               this.con.attachMovie("tile","t_" + i + "_" + j,++d) 
               this.con["t_" + i + "_" + j]._x = j * tileW 
               this.con["t_" + i + "_" + j]._y = i * tileH 
               this.con["t_" + i + "_" + j].gotoAndStop(map[i][j][0]) 
               this.con["t_" + i + "_" + j].type = map[i][j][1] 
               if ((j == startPos[0]) &&  (i == startPos[1])) { 
                   this.con.attachMovie("boat","boat",mH * mW + 1) 
                   this.con.boat._x = j * tileW 
                   this.con.boat._y = i * tileH 
                   this.con.boat.map = map 
                   this.con.boat.tileW = tileW 
                   this.con.boat.tileH = tileH 
                   this.con.boat.mW = mW 
                   this.con.boat.mH = mH 
                   } 
               } 
           } 
       } 
    stop() 
    getURL("FSCommand:allowscale",false) 
    tileW = 16 
    tileH = 16 
    map1 = [[["a2",1], ["a2",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a7",1], ["a2",1]], [["b1",1], ["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]], [["a2",1], ["a5",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a3",1], ["a9",1], ["a4",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a3",1], ["a9",1], ["a4",1], ["a1",0], ["a1",0], ["a1",0], ["a3",1], ["a4",1], ["a1",0], ["a8",1], ["b1",1], ["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a3",1], ["a9",1], ["a2",1], ["a2",1], ["a2",1], ["a9",1], ["a9",1], ["a9",1], ["a2",1], ["a2",1], ["a9",1], ["a2",1], ["a2",1], ["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["b1",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a4",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1], ["a2",1], ["b1",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a3",1], ["a2",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["b1",1], ["a2",1], ["a2",1], ["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a6",1], ["a2",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a7",1], ["a7",1], ["a7",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a3",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a5",1], ["a1",0], ["a1",0], ["a1",0], ["a6",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a5",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a8",1], ["a2",1], ["b1",1], ["a2",1], ["a7",1], ["a5",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a6",1], ["a2",1], ["a2",1], ["a5",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a6",1], ["a7",1], ["a7",1], ["a5",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a6",1], ["a5",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a3",1], ["a4",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1], ["a2",1], ["a4",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a8",1]],[["a2",1], ["a4",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a3",1], ["a2",1], ["b1",1], ["a0",1], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a1",0], ["a3",1], ["a4",1], ["a1",0], ["a1",0], ["a3",1], ["a2",1]],[["a2",1], ["a2",1], ["a9",1], ["a9",1], ["a9",1], ["a9",1], ["a9",1], ["a9",1], ["a9",1], ["a9",1], ["a2",1], ["a2",1], ["a2",1], ["a2",1], ["a9",1], ["a9",1], ["a9",1], ["a9",1], ["a9",1], ["a2",1], ["a2",1], ["a9",1], ["a9",1], ["a2",1], ["a2",1]]]
    startPos = [7,3] 
    this.attachMovie("empty","con",1) 
    buildMap (map1)
    Voilou bref je pige rien, donc si vous aviez de bons tutoriaux sur le tile based games ou meme les jeux de plates-formes style un moteur plates formes pour débutants ça serait cool !


    [edit] Espaces ajoutés, par freegreg, dans le tableau map1 pour éviter la déformation de l'affichage du forum [/edit]

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 42
    Par défaut
    Allez pliz...

  3. #3
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Salut,

    tout d'abord, tu devrais typer tes varaibles. Voilà c'est dit
    Ensuite :
    - Comment faire pour que ce soit impossible de faire tourner le bato quand il avance pas.
    Comment tu déplaces ton bateau ? Dans l'exemple que tu donnes la vitesse augmente progressivement. Pour eviter de faire tourner le bateau à l'arrêt, il suffit de faire un test sur la vitesse (nulle ou pas).
    - Comment faire pour qu'il soit bloké par les "murs" : J'ai essayé de mettre une varable "blok" sur 0 sur ma première Image, et de mettre un hitTest sur le mur qui la change en 1, et un test qui fait bouger le bato que si blok est sur 0, mais sa marchait pas et ct nul.
    Pour bloquer le bateau sur les murs, il faut bien utiliser le hitTest. Mais je n'ai pas compris à quoi servaient tes "block". Peux-tu nous monter le code que tu as utilisé?
    - Comment donner cette irrésisitble sensation de vitesse, au volant d'un beau cabriolet, un pull autour des épaules flottant dans le vent, une belle femme pendue a son biceps...
    Tu parles de l'accélération ???

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 42
    Par défaut
    Euh merci beaucoup^^

    Alors 1) Que signifie "typer mes variables" ? Mettre "var" avant ?

    et 2) en fait apart les murs tout va bien. Mais pour les murs, pk sa marche pas kan je fais sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // sur le mur :
     
    onClipEvent(enterFrame) {
          if(_root.bat.hitTest(this._x, this._y, true)) {
                _root.vitesse = 0;
          }
    }
    : : :

    Mici encore et mici d'avance à toi et aux autres !

  5. #5
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Re

    1) Typer ses variables est une notion qui est apparu avec Mx2004, qui permet de savoir (pour le developpeur mais aussi au compilo sans qu'il est trop à reflechir) à quoi correspond les varaibles :
    ex :
    est mieux queMême si cela marchera pareil

    2) Tu ne m'as pas dit comment tu faisais pour déplacer ton bateau ?
    Clavier ? Souris ? Déplacement aleatoire (Je ne pense pas ) ?
    Difficile de te répondre
    Pour le hitTest, il vaut mieux que tu crées un clip qui contient tous tes obstacles.
    Puis tu géres la collision avec ce clip.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bat.hitTest(clipContenantTesObstacles);
    Ps : Attention, si tu stoppes le bateau dès que tu touches un obstacle et que tu lui empeche de pivoter à l'arret, le skipper a plutôt intérêt à ne pas faire naufrage

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 42
    Par défaut
    C bon !!
    Enfin pour l'instant quand le boat touche le mur, il sarrette net. Seulement, comme je l'avais prédis, il ne peut plus repartir, pluisqu'il le touche !! Ah c con hein ? Comment faire ? Oublie les autres questions, juste celle la : comment faire pour que le mur l'arrette mais pas totalement ? Mici !!

    P.S.: Mon code ressemble à ça :
    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
     
    onClipEvent (load) {
    	vitesse = 0;
    	accel = 1;
    }
    onClipEvent (enterFrame) {
    	if (Key.isDown(Key.UP)) {
    		vitesse += accel;
    	}
    	if (Key.isDown(Key.DOWN)) {
    		vitesse -= accel;
    	}
    	vitesse *= 0.9;
    	if (Key.isDown(Key.RIGHT)) {
    		_rotation += vitesse;
    	}
    	if (Key.isDown(Key.LEFT)) {
    		_rotation -= vitesse;
    	}
    	_x += vitesse*Math.cos(Math.PI/180*_rotation);
    	_y += vitesse*Math.sin(Math.PI/180*_rotation);
    	if (this._x<0) {
    		this._x = 550;
    	}
    	if (this._x>550) {
    		this._x = 0;
    	}
    	if (this._y<0) {
    		this._y = 400;
    	}
    	if (this._y>400) {
    		this._y = 0;
    	}
    	if (this._parent.mur.hitTest(this)) {
    		vitesse = 0;
    		accel = 0;
    	}
    }
    J'ai rajouté une variable d'accéleration.

  7. #7
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Ta bateau va heurter le mur avec une certaine vitesse.
    Lorsque tu herute un mur, tu désactives les touches utilisateur, tu fais rebondir le bateau (ie il recule) avec une vitesse qui décroit jusqu'à 0. Une fois à 0, tu redonnes les commandes à l'utilisateur.
    Ce n'est qu'une idée comme cela il doit y avoir d'autres methodes

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 42
    Par défaut
    merci, je crois que j'ai trouvé, sa :

    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
    onClipEvent (load) {
    	vitesse = 0;
    	accel = 1;
    }
    onClipEvent (enterFrame) {
    	if (Key.isDown(Key.UP)) {
    		vitesse += accel;
    	}
    	if (Key.isDown(Key.DOWN)) {
    		vitesse -= accel;
    	}
    	vitesse *= 0.9;
    	if (Key.isDown(Key.RIGHT)) {
    		_rotation += vitesse;
    	}
    	if (Key.isDown(Key.LEFT)) {
    		_rotation -= vitesse;
    	}
    	_x += vitesse*Math.cos(Math.PI/180*_rotation);
    	_y += vitesse*Math.sin(Math.PI/180*_rotation);
    	if (this._x<0) {
    		this._x = 550;
    	}
    	if (this._x>550) {
    		this._x = 0;
    	}
    	if (this._y<0) {
    		this._y = 400;
    	}
    	if (this._y>400) {
    		this._y = 0;
    	}
    	if (this._parent.mur.hitTest(this)) {
    		vitesse = 0;
    		this._x -= 10;
    	}
    }
    8)

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 270
    Par défaut
    Moi je trouve ça bien qu'il puisse tourner même après avoir touché le mur, parce que si tu étais un vrai skipper, tu saurais qu'on a toujours des outils pour s'éloigner des rochers, autres bateaux, etc... et que, au pire, un bon skipper sait aussi nager, et tirer son bateau vers le large...

    Donc au pire, qu'il réaccélère plus lentement mais qu'il reparte...

    Et [résolu] si tu as trouvé ton bonheur incomensurable..

  10. #10
    Membre expérimenté Avatar de Mandalar
    Profil pro
    Étudiant
    Inscrit en
    Mai 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2004
    Messages : 121
    Par défaut
    Une autre idée serait de regarder si la position ou il sera apres déplacement est sur un mur, si oui il ne bouge pas, sinon il avance, ca permet de tourner sans avoir a le faire rebondir sur la paroi.

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

Discussions similaires

  1. [FLASH MX2004] Clip qui ne s'arrête pas
    Par romain starck dans le forum ActionScript 1 & ActionScript 2
    Réponses: 8
    Dernier message: 10/05/2006, 19h43
  2. Réponses: 5
    Dernier message: 14/01/2006, 20h30
  3. Communication C++ <--> Flash MX ou Flash MX2004
    Par loupiloup dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/01/2004, 20h58
  4. [FLASH MX2004] Hierarchisation des actions
    Par bolo dans le forum Flash
    Réponses: 9
    Dernier message: 06/11/2003, 16h02
  5. [FLASH MX2004] Personnaliser les scrollbars
    Par stephane eyskens dans le forum Flash
    Réponses: 10
    Dernier message: 09/10/2003, 12h53

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