Un peu de math

Description

un petit jeu avec rotation suivre la sourie ....
100% Mathématique.
un pti jeux
bla bla bla bla pour compléter les...

Source / Exemple :


import flash.display.MovieClip;
import flash.events.Event;

//tangante (
//trace(rad2deg(Math.atan2(1,1)));// donne 45

//atan2 c'est la tangante -1 pour avoir la valeur de l'angle ici en radian
/*var hand:MovieClip = new Mc();
hand.x=stage.stageWidth/2;
hand.y=stage.stageHeight/2;
addChild(hand);*/
var thex:Number;
var they:Number;
var dis : Number;
var myangle : Number;
// detection du deplacement
var T:Timer=new Timer(1000,0);
T.addEventListener(TimerEvent.TIMER,fun);
T.start();
function fun(evt:TimerEvent):void{
	thex = mouseX;
	they = mouseY;
}

var To:Timer=new Timer(250,0);
To.addEventListener(TimerEvent.TIMER,funo);
To.start();
function funo(evt:TimerEvent):void{
	if(thex == mouseX && they==mouseY){
		//trace("still");
		addEventListener(Event.ENTER_FRAME,onloop,false,0,true);
		aze_mc.snake.play();
	}
	if (thex!=mouseX && they!=mouseY){
		//trace("deplace");
		removeEventListener(Event.ENTER_FRAME,onloop);
		aze_mc.snake.stop();
	}
}

/*addEventListener(Event.ENTER_FRAME,onloop,false,0,true);

function onloop (e:Event):void{
	
	//aze_mc.rotation=getangle(aze_mc.x,aze_mc.y,mouseX,mouseY);//angle
	//aze_mc.x=mouseX-80;
	//aze_mc.y=mouseY-80;
}*/
// oorientation e
function getangle(x1:Number,y1:Number,x2:Number,y2:Number):Number{
	
	var radians:Number = Math.atan2(y1-y2,x1-x2);
			return rad2deg(radians);
}
function rad2deg(rad:Number):Number{
 return	rad*(180/Math.PI);
}

stage.addEventListener(MouseEvent.MOUSE_MOVE, CheckDirection);
function CheckDirection(e:MouseEvent)
{
	
	myangle = getangle(aze_mc.x,aze_mc.y,mouseX,mouseY);
	if(Math.abs(myangle)>90 &&Math.abs(myangle) < 180 ){
		aze_mc.rotation=myangle;
		aze_mc.rotationX=180;
		
	}
if(Math.abs(myangle) <90 ||Math.abs(myangle)>180 ){
		aze_mc.rotation=getangle(aze_mc.x,aze_mc.y,mouseX,mouseY);
		aze_mc.rotationX=0;
	}

trace("myangle : ",myangle);
e.updateAfterEvent();
} 
//deplacement ver but
 
 function onloop(e:Event):void{
	aze_mc.x+= velFriction(aze_mc.x,mouseX,60);
	 aze_mc.y+= velFriction(aze_mc.y,mouseY,60);
	  
	
	 
	  //calcul de distance etre mouse et snake
 function getdistance(x1:Number, y1:Number , x2:Number, y2:Number):Number{
	var d1:Number=x2-x1;
	var d2:Number=y2-y1;
	return Math.sqrt(d1*d1+d2*d2);
}
//trace(getdistance(aze_mc.x,aze_mc.y,mouseX,mouseY))
dis = getdistance(aze_mc.x,aze_mc.y,mouseX,mouseY);

if (dis<200){
	//trace("ca approche");
}
if (dis<120){
	//trace("danger");
}
if (dis<60){
	//trace("attaque");
}
	 
 }
 function velFriction(origine:Number,destination:Number,Coef:Number):Number{
	 return (destination-origine)/Coef;// Coef qui 20 dans cet example c'est 1/la vitesse pour rejoindre la distination
	 
	
 }
 
;

Conclusion :


si on a une base mathématique - physique assez fort == tous est fesable

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.