Tir de canon

Déplacement d'un symbole à partir d'équations
paramétriques en fonctions du temps

L'animation

Télécharger le fichier .fla

Les symbôles de l'animation

L'instance du bouton btnFeu

Cette instance va permettre de faire feu (lancer le boulet).

L'instance du bouton btnCharger

Cette instance va permettre de replacer le boulet dans le canon.

Les instances des boutons btnPlus et btnMoins

Ces instances vont permettre de modifier l'angle de tir

La zone de texte dynamique

La zone de texte dynamique est associée à la variable numAngle. Elle permet d'afficher la valeur de l'angle de tir.

L'instance Canon1 du clip clipCanon

Cette instance est nommée Canon1.

Sa propriété _rotation est utilisée pour changer l'angle de tir.

L'instance Boulet1 du clip clipBoulet

Cette instance est nommée Boulet1.

Ses pripriétés _x et _y sont utilisée pour la déplacer.

Les variables suivantes ont été définies dans l'instance de ce clip :

- x0 : abscisse initiale de Boulet1,

- y0 : ordonnée initiale de Boulet1,

- testDeplacement : variable bouléenne,

- testChargement : variable bouléenne.

Les actions associées aux symboles

Action sur l'instance du bouton btnFeu

on(release) {

//Si le Boulet1 est initialisé alors...

if (_root.Boulet1.testChargement) {

//Récupération ou initialisation des paramètres pour le Boulet1

_root.Boulet1.numTemps=0;

_root.Boulet1.numVitesse0=60;

_root.Boulet1.numAngle0=-_root.Canon1._rotation;

//Indication que le déplacement du Boulet1 est possible

_root.Boulet1.testDeplacement=true;

//Indication que Boulet1 n'est plus chargé (il vient d'être lancé)

_root.Boulet1.testChargement=false;

}

}

Action sur l'instance du bouton btnCharger

on(press) {

//Indication que le déplacement du Boulet1 n'est pas possible

_root.Boulet1.testDeplacement=false;

//Replacement du Boulet1 à sa position d'origine

_root.Boulet1._x=_root.Boulet1.x0;

_root.Boulet1._y=_root.Boulet1.y0;

//Indication que Boulet1 est chargé (prêt à être lancé)

_root.Boulet1.testChargement=true;

}

Actions sur les instances des boutons btnPlus et btnMoins

on(release) {

_root.Canon1._rotation=Math.max(_root.Canon1._rotation-1,-80);

_root.numAngle=-_root.Canon1._rotation;

}

on(release) {

_root.Canon1._rotation=Math.min(_root.Canon1._rotation+1,-10);

_root.numAngle=-_root.Canon1._rotation;

}

Action sur l'instance Canon1 du clip clipCanon

onClipEvent(load) {

_rotation=-45;

}

Action sur l'instance Boulet1 du clip clipBoulet

onClipEvent(load) {

//Indication que le déplacement du Boulet1 n'est pas possible

testDeplacement=false;

//Déclaration des coordonnées d'origines du Boulet1

x0=this._x;

y0=this._y;

//Indication que le Boulet1 est chargé

testChargement=true;

}

onClipEvent(enterFrame) {

//Si le déplacement du Boulet1 est possible alors...

if (testDeplacement) {

//Incrémentation du temps

numTemps=numTemps+0.2;

//Positionnement du Boulet1 aux nouvelles coordonnées

_x=numVitesse0*Math.cos(numAngle0*3.1415/180)*numTemps+x0;

_y=0.5*10*numTemps*numTemps-numVitesse0*Math.sin(numAngle0*3.1415/180)*numTemps+y0;

//Si le Boulet1 touche le sol alors...

if (_y>=240-10) {

//Indication que le déplacement du Boulet1 n'est plus possible

testDeplacement=false;

_y=240-10;

}

}

}

L'animation un peu améliorée

Télécharger le fichier .fla