Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer votre fps en webGl PB COURS

Information à rajouter dans le cours !

Sujet résolu
    11 décembre 2018 à 0:40:12

    Bonjour, je suis arrivé à l'étape où l'on doit rajouter _checkMove dans la partie 2 de ce cours et je suis resté bloqué à cause d'une virgule non spécifié juste après le "}" de _initScene{ }. Ce serait donc bien de rajouter une virgule dans le cours à la fin de l'acollade ou de spécifier qu'il faut en rajouter une si on rajoute une autre fonction comme le checkMove. Voilà, j’espère que çà changera et évitera que d'autres personne abandonne à cette étape! Car c'est vraiment un bon tuto (juste un peu déçu qu'il est pas plus d'explication poussé car juste copié et comprendre vaguement des fonctions, après on ne peut pas recréer logiquement avec ce que l'on a appris de zero.

    • Partager sur Facebook
    • Partager sur Twitter
      11 décembre 2018 à 11:22:06

      Bonjour,

      normalement les ";" en fin de ligne ne sont pas obligatoires en js, sauf si tu veux réduire ton code et mettre plusieurs instructions sur une même ligne.

      • Partager sur Facebook
      • Partager sur Twitter
        11 décembre 2018 à 19:24:18

        Bonjour en fait ce n'était pas ça le problème je viens de me rendre juste compte en le refaisant que j'avais du l'effacer et pourtant j'avais revérifier dans le cours en gros c'était à la fin de ma fonction après l'accolade faut une virgule pour mettre une autre fonction après. Mais merci quand même!

        • Partager sur Facebook
        • Partager sur Twitter
          15 décembre 2018 à 15:48:08

          Bonjour je suis le meme cours et j'en suis au meme endroit. J'ai un probleme avec mon code, j'ai surement du ajouter quelque chose au mauvais endroit, quelqu'un pourrait me donner la correction si il vous plait ? Merci d'avance !

          -
          Edité par GabrielCharron1 15 décembre 2018 à 16:13:32

          • Partager sur Facebook
          • Partager sur Twitter
            27 décembre 2018 à 18:33:50

            GabrielCharron1 a écrit: > j'ai j'espère que ca t'aidera , bonne continuation ;)

            Player = function(game, canvas) {

            // _this est l'accès à la caméraà l'interieur de Player
            var _this = this;
            
            // Le jeu, chargé dans l'objet Player
            this.game = game;
            
            // Axe de mouvement X et Z
            this.axisMovement = [false,false,false,false];
            
            _this.angularSensibility = 1000;
            
            window.addEventListener("keyup", function(evt) {
                
                switch(evt.keyCode){
                    case 90:
                    _this.camera.axisMovement[0] = false;
                    break;
                    case 83:
                    _this.camera.axisMovement[1] = false;
                    break;
                    case 81:
                    _this.camera.axisMovement[2] = false;
                    break;
                    case 68:
                    _this.camera.axisMovement[3] = false;
                    break;
                }
            }, false);
            
            // Quand les touches sont relachés
            window.addEventListener("keydown", function(evt) {
                switch(evt.keyCode){
                    case 90:
                    _this.camera.axisMovement[0] = true;
                    break;
                    case 83:
                    _this.camera.axisMovement[1] = true;
                    break;
                    case 81:
                    _this.camera.axisMovement[2] = true;
                    break;
                    case 68:
                    _this.camera.axisMovement[3] = true;
                    break;
                }
            }, false);
            
            window.addEventListener("mousemove", function(evt) {
            if(_this.rotEngaged === true){
                _this.camera.rotation.y+=evt.movementX * 0.001 * (_this.angularSensibility / 250);
                var nextRotationX = _this.camera.rotation.x + (evt.movementY * 0.001 * (_this.angularSensibility / 250));
                if( nextRotationX < degToRad(90) && nextRotationX > degToRad(-90)){
                    _this.camera.rotation.x+=evt.movementY * 0.001 * (_this.angularSensibility / 250);
                }
            }
            

            }, false);

            // Initialisation de la caméra
            this._initCamera(this.game.scene, canvas); 
            
            // Le joueur doit cliquer dans la scène pour que controlEnabled soit changé
            this.controlEnabled = false;
            
            // On lance l'event _initPointerLock pour checker le clic dans la scène
            this._initPointerLock(); 
            };
            

            Player.prototype = {

            _initPointerLock : function() {
            	var _this = this;
            	this.speed = 1;
            	// Requete pour la capture du pointeur
            	var canvas = this.game.scene.getEngine().getRenderingCanvas();
            	canvas.addEventListener("click", function(evt) {
            		canvas.requestPointerLock = canvas.requestPointerLock || canvas.msRequestPointerLock || canvas.mozRequestPointerLock || canvas.webkitRequestPointerLock;
            		if (canvas.requestPointerLock) {
            			canvas.requestPointerLock();
            		}
            	}, false);
            
            	// Evenement pour changer le paramètre de rotation
            	var pointerlockchange = function (event) {
            		_this.controlEnabled = (document.mozPointerLockElement === canvas || document.webkitPointerLockElement === canvas || document.msPointerLockElement === canvas || document.pointerLockElement === canvas);
            		if (!_this.controlEnabled) {
            			_this.rotEngaged = false;
            		} else {
            			_this.rotEngaged = true;
            		}
            	};
            	
            	// Event pour changer l'état du pointeur, sous tout les types de navigateur
            	document.addEventListener("pointerlockchange", pointerlockchange, false);
            	document.addEventListener("mspointerlockchange", pointerlockchange, false);
            	document.addEventListener("mozpointerlockchange", pointerlockchange, false);
            	document.addEventListener("webkitpointerlockchange", pointerlockchange, false);
            },
            _initCamera : function(scene, canvas) {
            // On crée la caméra
            this.camera = new BABYLON.FreeCamera("camera", new BABYLON.Vector3(-20, 5, 0), scene);
            
            // Axe de mouvement X et Z
            this.camera.axisMovement = [false,false,false,false];
            
            // Si le joueur est en vie ou non
            this.isAlive = true;
            
            // On demande à la caméra de regarder au point zéro de la scène
            this.camera.setTarget(BABYLON.Vector3.Zero());
            },
            
            _checkMove : function(ratioFps) {
            	let relativeSpeed = this.speed / ratioFps;
            	if(this.camera.axisMovement[0]){
            		this.camera.position = new BABYLON.Vector3(this.camera.position.x + (Math.sin(this.camera.rotation.y) * relativeSpeed),
            			this.camera.position.y,
            			this.camera.position.z + (Math.cos(this.camera.rotation.y) * relativeSpeed));
            	}
            	if(this.camera.axisMovement[1]){
            		this.camera.position = new BABYLON.Vector3(this.camera.position.x + (Math.sin(this.camera.rotation.y) * -relativeSpeed),
            			this.camera.position.y,
            			this.camera.position.z + (Math.cos(this.camera.rotation.y) * -relativeSpeed));
            	}
            	if(this.camera.axisMovement[2]){
            		this.camera.position = new BABYLON.Vector3(this.camera.position.x + Math.sin(this.camera.rotation.y + degToRad(-90)) * relativeSpeed,
            			this.camera.position.y,
            			this.camera.position.z + Math.cos(this.camera.rotation.y + degToRad(-90)) * relativeSpeed);
            	}
            	if(this.camera.axisMovement[3]){
            		this.camera.position = new BABYLON.Vector3(this.camera.position.x + Math.sin(this.camera.rotation.y + degToRad(-90)) * - relativeSpeed,
            			this.camera.position.y,
            			this.camera.position.z + Math.cos(this.camera.rotation.y + degToRad(-90)) * - relativeSpeed);
            	}
            }
            

            };

            -
            Edité par MelvinBougaran 27 décembre 2018 à 18:41:44

            • Partager sur Facebook
            • Partager sur Twitter
              30 décembre 2018 à 11:34:00

              Merci beaucoup à toi ça m'a bien aidé !
              • Partager sur Facebook
              • Partager sur Twitter

              Créer votre fps en webGl PB COURS

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown