Problème physique saut 2D

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
ziropo
Messages : 52
Inscription : 19 Fév 2016 16:45

Problème physique saut 2D

Message par ziropo » 28 Déc 2018 19:40

Bonsoir,

Je fais un plateformer 2D. Mon personnage se déplace et saute à la mario.

Image

Quand mon personnage saute, il saute actuellement comme en 1. Je veux plutôt qu'il agisse comme en 2, mais il se retrouve toujours propulsé quand je saute en continuant d'avancer sur un coin.

Voilà mon script :

Code : Tout sélectionner


void FixedUpdate(){

	grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround);

	float move = Input.GetAxis("Horizontal");

	playerRB.velocity = new Vector2(move * maxSpeed, playerRB.velocity.y);

	if(isJumping == true && Input.GetButton("Jump")){
		if(jumpTimeCounter > 0){
			playerRB.velocity = new Vector2(playerRB.velocity.x, jumpForce);
			jumpTimeCounter -= Time.deltaTime;
		}
		else if(jumpTimeCounter < 0){
			isJumping = false;
		}
	}

}

void Update(){
	if(grounded && Input.GetButtonDown("Jump")){
		isJumping = true;
		jumpTimeCounter = jumpTime;
	}
	if(Input.GetButtonUp("Jump")){
		isJumping = false;
	}
}
Est-ce que quelqu'un aurait une solution ?

Merci d'avance.

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: Problème physique saut 2D

Message par Moi 1971 » 29 Déc 2018 10:08

Bonjour,

As-tu essayé de mettre la vélocité de ton objet à zéro juste avant de faire le saut. Ainsi il n'avancera plus pendant le saut.
Je ne connais pas la syntaxe pour le vecteur 2D nul, mais ça devrait ressembler à un truc comme ça :

Code : Tout sélectionner

if(jumpTimeCounter > 0){
	// Ici la modif à faire => La syntaxe est fausse!!!
	playerRB.velocity = Vector2(0, 0);
	// Fin de la modif
	playerRB.velocity = new Vector2(playerRB.velocity.x, jumpForce);
	jumpTimeCounter -= Time.deltaTime;
}
Le problème avec cette manière de faire c'est que l'objet ne peut plus faire de saut en diagonal en prenant de l'élan par exemple...

ziropo
Messages : 52
Inscription : 19 Fév 2016 16:45

Re: Problème physique saut 2D

Message par ziropo » 30 Déc 2018 16:53

Merci pour la proposition. :)

Effectivement c'est un problème, vu que je veux garder la possibilité de sauter en diagonale.

J'ai essayé entre-temps de détecter si le joueur est collé au mur pendant un saut et l'empêcher d'avancer, ou diminuer sa vélocité tant qu'il n'est pas assez haut pour éviter qu'il force sur le coin de la plateforme.

J'ai pas vraiment trouvé les bons réglages, mais c'est pour moi la meilleure méthode qui me vient.

Finalement, je pinaille, je pense que je vais garder tel quel pour le moment. :]

Merci.

Répondre

Revenir vers « Scripting »