Contrôle d'un clip a l'aide des touches de direction

Description

source sans prétention, le coté graphique n'est pas developper seul l'action script l'est.J'essaie dans cette source de simuler du mieux possible le contrôle d'un bateau ou d'une voiture.

Source / Exemple :


//accélération du bateau
var A:Number = 0;
//vitesse maximum du bateau
var vMax:Number = 5;
//manoeuvrabilité du bateau
var Mano:Number = 0.6;
//fonction de gestion de la vitesse pour le bateau
bateau.setVitesse = function() {
	_y -= (Math.cos(Math.PI/180*this._rotation))*A;
	_x += (Math.sin(Math.PI/180*this._rotation))*A;
};
// evenement appliqué au clip bateau
bateau.onEnterFrame = function() {
	//initialise l'accélération du bateau qui est dans ce cas linéaire et termine son accélération quand celui atteint la vitesse maxi
	if (Key.isDown(Key.UP) && A<=vMax) {
		A += 0.3;
	}
	//permet d'appliquer la fonction vitesse au bateau quand la touche UP est enfoncé
	if (Key.isDown(Key.UP)) {
		this.setVitesse();
	}
	//initialise la décélération du bateau qui est linéaire
	if (!Key.isDown(Key.UP) && A>0) {
		A -= 0.1;
		this.setVitesse();
		if (A<0.1) {
			// evite au bateau de reculer
			A = 0;
		}
	}
	if (Key.isDown(Key.RIGHT)) {
		// rotation fonction de la manoeuvrabilité et de la vitesse
		this._rotation += Mano*A;
	}
	if (Key.isDown(Key.LEFT)) {
		// rotation fonction de la manoeuvrabilité et de la vitesse
		this._rotation -= Mano*A;
	}
};

// Autre action script avec les écouteurs

//accélération du bateau
var A:Number = 0;
//manoeuvrabilité du bateau
var Mano:Number = 0.10;
//vitesse maximum
var vMax:Number = 5;
//fonction de gestion de la vitesse pour le bateau
this.onEnterFrame = bateau_mc.setVitesse=function () {
	_y -= (Math.cos(Math.PI/180*bateau_mc._rotation))*A;
	_x += (Math.sin(Math.PI/180*bateau_mc._rotation))*A;
};
ecoute = new Object();
ecoute.onKeyDown = function() {
	if (Key.isDown(Key.UP) && A<vMax) {
		A += 0.05;
		this.setVitesse();
	}
	if (Key.isDown(Key.DOWN) && A>0) {
		A -= 0.05;
		if (A<0.05) {
			A = 0;
		}
	}
	if (Key.isDown(Key.LEFT)) {
		bateau_mc._rotation -= A*Mano;
	}
	if (Key.isDown(Key.RIGHT)) {
		bateau_mc._rotation += A*Mano;
	}
};
Key.addListener(ecoute);
setInterval (ecoute.onKeyDown,10);

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.