[JS] Probème de saut et gravité

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Hoslety
Messages : 25
Inscription : 11 Juin 2015 00:27

[JS] Probème de saut et gravité

Message par Hoslety » 13 Juil 2015 01:58

Salut ,

voilà je viens de modifier un de mes script de mouvement du joueurs seulement j'ai un soucis ...
Mon joueur ne saute pas :s

Code : Tout sélectionner

//Variable de déplacement du joueur
///// Vitesse de déplacement //////
var SpeedWalk : float;
var SpeedWalkLateral : float;
var SpeedWalkLateralRun : float;
var SpeedRun : float;

///// affectation des forces ///// 
var Gravity : float;
var JumpStrength : float;

////Affectation troisieme ou premiere Personnes/////
var FirstPersonController : boolean;
var ThirdPersonController : boolean;
private var FirstPersonControllerGo : GameObject;
private var ThirdPersonControllerGo : GameObject;

//camera 3eme ou 1er personne
private var ThirdPersonCamera : GameObject;

//character controler //
private var Controller : CharacterController; 

//affectation des mouvement
private var MovePlayer : Vector3;
private var MovePlayerLateral : Vector3;

//Content pour animation
private var CharacterContent : GameObject;

//// Verification Divers ////
var Run : boolean;
var IsGrounded : boolean;
var Walk : boolean; 

//variable de chutte
private var StartFallPositionY : int;
private var EndFallPositionY : int;
private var Chutte : boolean = false;
private var HauteurChute : float ;

//DIVERS //
private var DeltaTime : float;

function Start ()
{
CharacterContent = GameObject.Find("MAX");
ThirdPersonCamera = GameObject.Find("ThirdPersonCamera");
Controller = GetComponent("CharacterController");
FirstPersonControllerGo = GameObject.Find("FirstPersonController");
ThirdPersonControllerGo = GameObject.Find("ThirdPersonController");
ThirdPersonCamera.SetActive(false);
ThirdPersonControllerGo.SetActive(false);
FirstPersonControllerGo.SetActive(false);
FirstPersonController = true;
ThirdPersonController = false;
if(FirstPersonController == true)
	{
		Debug.Log("1er");
		FirstPersonControllerGo.SetActive(true);
		
	}
if(ThirdPersonController == true)
	{
		Debug.Log("3eme");
		ThirdPersonControllerGo.SetActive(true);
		ThirdPersonCamera.SetActive(true);
	}
}

function Update()
{
DeltaTime = Time.deltaTime;
Run = false;
//Modification du controller 1er Personne ou 3eme Personne
if(Input.GetKeyDown(KeyCode.KeypadMultiply))
	{
		FirstPersonController = !FirstPersonController;
		ThirdPersonController = !ThirdPersonController;
		
		if(FirstPersonController == true)
			{
				ThirdPersonControllerGo.SetActive(false);
				FirstPersonControllerGo.SetActive(true);
				ThirdPersonCamera.SetActive(false);
				
			}
		else if(ThirdPersonController == true)
			{
				ThirdPersonControllerGo.SetActive(true);
				ThirdPersonCamera.SetActive(true);	
				FirstPersonControllerGo.SetActive(false);
			}
	}

//Vérification Sur le joueurs 
if(Controller.isGrounded)
	{
		IsGrounded = true;
	}
else
	{
		IsGrounded = false;
	}	
if(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
	{
		Run = true;
	}
else
	{
		Run = false;
	}
if(!Input.anyKey)
	{
		Walk = false;
	}
	//graviter

if(IsGrounded == true)
{
	if(Run == true)
	{
		MovePlayer = Vector3(0,0,Input.GetAxis("Vertical") * SpeedRun);
		MovePlayerLateral = Vector3(Input.GetAxis("Horizontal") * SpeedWalkLateralRun,0,0);
	}
	else
	{
		MovePlayer = Vector3(0,0,Input.GetAxis("Vertical") * SpeedWalk);
		MovePlayerLateral = Vector3(Input.GetAxis("Horizontal") * SpeedWalkLateral,0,0);
	}
}
	MovePlayer.y -= Gravity;
	MovePlayerLateral.y = MovePlayer.y;

	MovePlayer = transform.TransformDirection(MovePlayer);
	MovePlayerLateral = transform.TransformDirection(MovePlayerLateral);


	//déplacé le joueurs 
	Controller.Move(MovePlayer * DeltaTime);
	Controller.Move(MovePlayerLateral * DeltaTime);	

//affichage des animations
if(!Walk && FirstPersonController == false)
	{
		//ajout animation
		CharacterContent.GetComponent(Animation).CrossFade("idle", 0.2);
	}
if(Input.GetKey(KeyCode.UpArrow))
	{
		if(!Run)
			{
				CharacterContent.GetComponent(Animation).CrossFade("walk", 0.2);
			}
		else
			{
				CharacterContent.GetComponent(Animation).CrossFade("run", 0.2);
			}
	}
if(Input.GetKey(KeyCode.Space))
	{

		MovePlayerLateral.y = JumpStrength;
	}
	
if(IsGrounded == false && Chutte == false)
	{
		StartChutte();
	}
else if(IsGrounded == true && Chutte == true)
	{
		EndChutte();
	}


}
function StartChutte()
{
		StartFallPositionY = gameObject.transform.position.y;
		Chutte = true;
		
}

function EndChutte()
{
		EndFallPositionY = gameObject.transform.position.y;
		Chutte = false;
		DamageChutte();
}

function DamageChutte()
{
	HauteurChute = StartFallPositionY - EndFallPositionY;
	if(HauteurChute > 1)
		{
			Playerstats.ApplyDammage(HauteurChute * 7);
		}
}


je pense que le probleme proviens de ceci

Code : Tout sélectionner

	MovePlayer.y -= Gravity;
	MovePlayerLateral.y -= Gravity;
car il y aurait une double valeur... mais je ne sais pas comment le résoudre....

Merci ;)

Hoslety
Messages : 25
Inscription : 11 Juin 2015 00:27

Re: [JS] Probème de saut et gravité

Message par Hoslety » 16 Juil 2015 14:34

Bonjour, je me permet de faire un petit UP

Avatar de l’utilisateur
GTSAReeper
Messages : 230
Inscription : 21 Juil 2013 02:12
Localisation : Creuse - Limousin

Re: [JS] Probème de saut et gravité

Message par GTSAReeper » 16 Juil 2015 14:54

Je ne vois pas trop, essaye de multiplié Gravity par Time.deltaTime sinon je vois pas.

Au plaisir.
[center]Image[/center]

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [JS] Probème de saut et gravité

Message par boubouk50 » 16 Juil 2015 15:16

Code : Tout sélectionner

if(IsGrounded == true)
{
   if(Run == true)
   {
      MovePlayer = Vector3(0,0,Input.GetAxis("Vertical") * SpeedRun);
      MovePlayerLateral = Vector3(Input.GetAxis("Horizontal") * SpeedWalkLateralRun,0,0);
   }
   else
   {
      MovePlayer = Vector3(0,0,Input.GetAxis("Vertical") * SpeedWalk);
      MovePlayerLateral = Vector3(Input.GetAxis("Horizontal") * SpeedWalkLateral,0,0);
   }
}
   MovePlayer.y -= Gravity;
   MovePlayerLateral.y = MovePlayer.y;
Tu as le saut sur l'axe z et la gravité sur l'axe y, donc tu dois sauter dans la profondeur surement.

Code : Tout sélectionner

if(Run == true)
   {
      MovePlayer = Vector3(0,Input.GetAxis("Vertical") * SpeedRun,0);
      MovePlayerLateral = Vector3(Input.GetAxis("Horizontal") * SpeedWalkLateralRun,0,0);
   }
   else
   {
      MovePlayer = Vector3(0,Input.GetAxis("Vertical") * SpeedWalk,0);
      MovePlayerLateral = Vector3(Input.GetAxis("Horizontal") * SpeedWalkLateral,0,0);
   }
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

sotec
Messages : 542
Inscription : 21 Sep 2012 10:11

Re: [JS] Probème de saut et gravité

Message par sotec » 16 Juil 2015 16:54

+1 boubouk , surement une erreur de copier coller ^^
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻

Hoslety
Messages : 25
Inscription : 11 Juin 2015 00:27

Re: [JS] Probème de saut et gravité

Message par Hoslety » 16 Juil 2015 18:57

Enocre plus con ... je viens de me remettre dedans a la lecture de ton message...

Code : Tout sélectionner

if(IsGrounded == true)
{
   if(Run == true)
   {
      MovePlayer = Vector3(0,0,Input.GetAxis("Vertical") * SpeedRun);
      MovePlayerLateral = Vector3(Input.GetAxis("Horizontal") * SpeedWalkLateralRun,0,0);
   }
   else
   {
      MovePlayer = Vector3(0,0,Input.GetAxis("Vertical") * SpeedWalk);
      MovePlayerLateral = Vector3(Input.GetAxis("Horizontal") * SpeedWalkLateral,0,0);
   }
}
sert en faite pour le mouvement du joueurs
J'avais juste oublier de faire le saut avant de demandé d'éffectuer le mouvement ;)

Merci pour votre aide ;)

Verrouillé

Revenir vers « (Js) Javascript »