Création de jeux flash simuler la gravité ( physique amusante )

Description

voilà un bien joli vaisseau vert et blanc qui met les gazes.

un petit code fais en AS2 qui n'a pas la prétention d être parfaitement calé techniquement, mais qui peut être pédagogique toute est paramétrable le poids de l'appareille la planète ou ce trouve le vaisseau toute les formules sont tirées des lois de gravitation de newton

vous trouverez les tutoriels vidéos sur
http://habibal.tk/videos/creation-de-jeux-flash-simuler-la-gravite-physique-amusante-partie-1
http://habibal.tk/videos/creation-de-jeux-flash-simuler-la-gravite-physique-amusante-partie-2

Source / Exemple :


//en place le vaisseau sur la scene 
attachMovie("vaisseau", "vaisseau", 20);
//en le positionne 
vaisseau._x = Stage.width/2;
vaisseau._y = 0;
//réinsialiser la taille des flammes 
vaisseau.flamme_1._yscale= 0;
vaisseau.flamme_2._yscale= 0;
//déclaration des variables 
g = 6.67 * 	Math.pow(10, -11);//constante gravitationnelle de kepler 
m = 5.9742* Math.pow(10, 24);// masse de la terre 
r = Math.pow( 6380* Math.pow(10, 3), 2 );//reyon de la terre puissence 2 
m_ves = 20 * Math.pow(10, 3); //masse du vesseau  
force_poussee = 10 * Math.pow(10, 4);//force de poussée 

gravity = ( g * m ) / r ;// formule de la gravité universelle 
gravity = gravity / 30 ;//en devise le résultat par trante image par second
force_gravity = m_ves * gravity;//force gravitationnelle 
yspeed = 0;//initialise la variable yspeed
xspeed = 0
rot = 10; //mystere !!!
force = 0;//initialisation de la variable d'incrémentation  
poussee = 10;//valeur indice des flammes des réacteurs 
//à chaque fois que la scene ce rafferechie 
onEnterFrame = function () {
angle_radians = vaisseau._rotation * Math.PI/180 	
force_y = Math.cos(angle_radians) *  force
force_x = Math.sin(angle_radians) *  force 
force_reacteur_y = force_gravity - force_y; //formule de calcule de la force 
force_reacteur_x = force_x ; 
acceleration_y = ( force_reacteur_y / m_ves ) / 30; // accelération de la poussée 
acceleration_x = ( force_reacteur_x / m_ves ) / 30 ;
yspeed += gravity + acceleration_y ;//incrémentation de la variable yspeed
xspeed += acceleration_x ;//incrémentation de la variable yspeed
vaisseau.flech._rotation = 360
vaisseau.flech.height = force_reacteur_y / 80
vaisseau.flech.width = force_reacteur_x / 80
vaisseau._y += yspeed;//déplacer le vaisseau
vaisseau._x += xspeed;
trace( force_x )
if (Key.isDown(Key.LEFT)) {
        vaisseau._rotation -= rot;//mystere
		vaisseau.fusée_gauche_1.play();
		vaisseau.fusée_gauche_2.play();
		
    }
if (Key.isDown(Key.RIGHT)) {
        vaisseau._rotation += rot;//mystere 
		vaisseau.fusée_droite_1.play();
		vaisseau.fusée_droite_2.play();
    }	
if (Key.isDown(Key.UP)) {
		if ( vaisseau.flamme_1._yscale >= 0 && vaisseau.flamme_1._yscale <= 100 ) {
			//incrémentation de l'indice de flammes  	
			vaisseau.flamme_1._yscale += poussee;
			vaisseau.flamme_2._yscale += poussee;			
			force += force_poussee;//incrémentation de la force de poussée 			 
		}			
	}
if (Key.isDown(Key.DOWN)) {
	if ( vaisseau.flamme_1._yscale  > 0 ) {
		//décrémentation de l'indice de flammes
		vaisseau.flamme_1._yscale -= poussee; 
		vaisseau.flamme_2._yscale -= poussee;
		force -= force_poussee;	//décrémentation de la force de poussée
	}
} 	
	
//condition de l'arret du vaisseau 
if (vaisseau._y >= Stage.height-33) {
		vaisseau._y = Stage.height-33;		
		yspeed = 0;
	}
else if ( vaisseau._y < 0 ) {
		vaisseau._y = 0;	
		yspeed = 0;
	}
if ( vaisseau._x >= Stage.width-33) {
		vaisseau._x = Stage.width-33;
		xspeed = 0;
	}
else if  ( vaisseau._x < 33 ) {
		vaisseau._x = 33;	
		xspeed = 0;
	}
}

Conclusion :


J espère que vous avez appris des choses en vous amusent et aussi que vous avez apprécié mes commentaires vidéo laissé moi vos commentaires pour me perfectionner et vous présenter un travail toujours de meilleur qualité.

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.