[RESOLU] Script de déplacement

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
Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Script de déplacement

Message par boubouk50 » 04 Mai 2016 16:58

Tu n'entres pas dans la condition donc:
soit tu perds les Input (ce que je doute mais teste quand même) -> Debug.Log ("Input Espace: " + Input.GetButtonDown("Submit"));
soit timerScript.tempsUp = vaut true -> Debug.Log ("Time's up: " + timerScript.tempsUp);
"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

CreamyDelux
Messages : 36
Inscription : 01 Mars 2016 19:44

Re: Script de déplacement

Message par CreamyDelux » 05 Mai 2016 08:32

Salut,

J'ai suivi tes conseil voila ce qui se passe

Lors du premier lancement tout va bien. La console m'affiche bien que IsGrounded = True, TimeUp = false et Input Espace : true.

Au deuxième lancement après être tombé dans l'eau, le problème persiste et la console m'affiche : IsGrounded = true,
TimeUp = false, en revanche il ne me renvoi pas le message des Input.

Je pense donc que tu a raison je doit perdre les Input au re-lancement de la scene.

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

Re: Script de déplacement

Message par Moi 1971 » 05 Mai 2016 09:33

Bonjour,
Juste pour essayer, remplace ton if :

Code : Tout sélectionner

if(Input.GetButtonDown("Submit"))
par celui-ci :

Code : Tout sélectionner

if( Input.GetKeyDown( KeyCode.Space ) )

CreamyDelux
Messages : 36
Inscription : 01 Mars 2016 19:44

Re: Script de déplacement

Message par CreamyDelux » 06 Mai 2016 08:16

Bonjour,

J'ai essaye de remplacer le "SUBMIT" avec la touche "ESPACE". Le problème est le meme. Des que l'on tombe dans l'eau, je ne peut plus sauter.

J'ai oublier de spécifier dans mon message d'hier matin, que lorsque je lance la scene pour la premiere fois, la console affiche
IsGrounded = true, TimeUp = false et Input Espace : true. Des lors que j'appuie sur le touche ENTRER par exemple, le joueur saute la console affiche IsGrounded = false ( IsGrounded devient false quand j'appuie sur ma touche)

Je tombe dans l'eau, la scene se relance, a ce moment la, la console affiche Isgrounded = true, TimeUp = false comme je l'ai dit hier il ne me renvoi pas le message Input Espace : true. En revanche, lorsque j'appuie sur ma touche de saut, la console affiche IsGrounded = false, donc je pense que l'input doit encore être pris en compte puisque c'est lui qui va faire en sorte que IsGrounded = false

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

Re: Script de déplacement

Message par Moi 1971 » 06 Mai 2016 10:40

Peux-tu, une nouvelle fois, nous donner l'ensemble du code (avec le nom de chaque fichier et classe ) correctement afficher entre balise code?

CreamyDelux
Messages : 36
Inscription : 01 Mars 2016 19:44

Re: Script de déplacement

Message par CreamyDelux » 06 Mai 2016 11:44

Donc voici le code qui s'occupe de la variable IsGrounded :

Code : Tout sélectionner

var objetSol : GameObject;      // C'est l'objet qui va percuter le sol
static var IsGrounded : boolean = true;

function Start(){
	IsGrounded = true;
}

function OnTriggerEnter(objetSol : Collider){

	if(objetSol.gameObject.tag == "Player"){
	IsGrounded = true;
	print ("IsGrounded = true");
}
}

function Update(){

	if(Input.GetKeyDown(KeyCode.Space)){
	IsGrounded = false;
	print ("IsGrounded = false");
}
}
et voici le code qui me permet de sauter :

Code : Tout sélectionner

var vitesseDeplacement = 6.0;

function Start(){
timerScript.tempsUp = false;
print("Time's up: " + timerScript.tempsUp);
}

function Update () {

	if(Input.GetKeyDown(KeyCode.Space) && IsGrounded.IsGrounded == true && timerScript.tempsUp == false){
    GetComponent.<Rigidbody>().AddForce(0, vitesseDeplacement * 8, 0);
    print("Vous sautez");
    print("Input Espace: " + Input.GetKeyDown(KeyCode.Space));
   }
   }
   

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

Re: Script de déplacement

Message par Moi 1971 » 06 Mai 2016 13:27

Déjà, j'avais écrit :"avec le nom de chaque fichier et classe"... où sont les noms de fichier et classe?
De ce que tu nous montre, il y a un truc qui ne va pas. Dans le premier bout de code (sans nom de fichier ni classe) il y a :

Code : Tout sélectionner

function Update(){
	if(Input.GetKeyDown(KeyCode.Space)){
   		IsGrounded = false;
   		print ("IsGrounded = false");
	}
}
C'est dans cet "Update()" que tu teste si le joueur appui sur une touche pour faire sauter le personnage. Donc il ne faut pas re-tester ailleurs dans le code l'appui d'une touche. Et pourtant c'est ce que tu fais dans cet autre bout de code (toujours sans nom de fichier ni classe)

Code : Tout sélectionner

function Update () {
	if(Input.GetKeyDown(KeyCode.Space) && IsGrounded.IsGrounded == true && timerScript.tempsUp == false){
    		GetComponent.<Rigidbody>().AddForce(0, vitesseDeplacement * 8, 0);
    		print("Vous sautez");
    		print("Input Espace: " + Input.GetKeyDown(KeyCode.Space));
   	}
   }
   
C'est peut-être pas ça qui bloque mais déjà ça sera plus propre de corriger.
Remplace ton code par celui-là:

Code : Tout sélectionner

function Update(){

	if(Input.GetKeyDown(KeyCode.Space)){
   		Debug.Log ("IsGrounded = "+IsGrounded);
   		IsGrounded = false;
   		Debug.Log ("IsGrounded = "+IsGrounded);
	}
}

Code : Tout sélectionner

function Update () {
	Debug.Log("IsGrounded.IsGrounded = " + IsGrounded.IsGrounded );
	Debug.Log("timerScript.tempsUp = " + timerScript.tempsUp );
	
	if(IsGrounded.IsGrounded == true && timerScript.tempsUp == false){
    		Debug.Log("Dans le If()");
    		GetComponent.<Rigidbody>().AddForce(0, vitesseDeplacement * 8, 0);
   	}
   }
   
Lance le jeu, saute dans l'eau et reviens nous écrire ce qu'il y a dans la console => EN FAISANT UN COPIER/COLLER EXACTE de ce qu'il y a dans la console.

CreamyDelux
Messages : 36
Inscription : 01 Mars 2016 19:44

Re: Script de déplacement

Message par CreamyDelux » 07 Mai 2016 07:41

Salut,

Désolé je pensait avoir envoyé le nécessaire.

Pour être sur de ne pas renvoyer n'importe quoi,
Par le nom du fichier, tu attends le nom de mon script ?
Et je ne comprends pas ce que tu veut dire par classes ?

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

Re: Script de déplacement

Message par Moi 1971 » 07 Mai 2016 10:06

Bonjour,
Le nom du fichier est le nom du script. Un script est un fichier. Le nom du script est le même que le nom du fichier (qui est le même que le nom de la classe en C#). C'est expliqué ici http://docs.unity3d.com/Manual/Creating ... ripts.html. Il y a une différence entre C# et javascript mais le principe reste le même.

CreamyDelux
Messages : 36
Inscription : 01 Mars 2016 19:44

Re: Script de déplacement

Message par CreamyDelux » 09 Mai 2016 11:35

Salut,

J'ai recopié tes codes, seulement il y avait un problème,je devais remplacer le premier code que tu m'a donné mais du coup la balle partait en l'air sans que je n'appuie sur ESPACE car elle n'était plus entré comme variable dans le script.

Du coup j'ai un peu bidouillé avec les codes que tu m'a donné et sa a résolu mon problème.

Merci beaucoup pour ton aide

Verrouillé

Revenir vers « (Js) Javascript »