Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de vérification True False

    18 septembre 2017 à 14:42:21

    Bonjour,

    je débute en js est j utilise THREE.js .

    mon problème est que j'ai 2 cube si un cube touche l'autre ma variable collision retourne True.

    mais comme je mais sa dans un if sa renvoie pas de résultat alors que il détecte bien est ma variable est bien en True .

    firstBB = new THREE.Box3().setFromObject(cube);
    
    				secondBB = new THREE.Box3().setFromObject(cube3);
    
    				var collision = firstBB.isIntersectionBox(secondBB);
    				if(collision == true){
    					document.write("gfg");
    				}



    • Partager sur Facebook
    • Partager sur Twitter
      18 septembre 2017 à 15:08:21

      Comment peut-on prétendre faire de la programmation quant on massacre le français à ce point !

      Mais comme je mets ça (du verbe mettre avec un démonstratif) .

      Là encore la variable collision retourne True, true ou "true" ?

      True avec une majuscule est une variable inconnue en javascript, true est une variable prédéfinie vraie et "true" est une chaîne de caractères différente de la précédente. Autrement dit "true"!=true est vraie

      • Partager sur Facebook
      • Partager sur Twitter
        18 septembre 2017 à 15:35:08

        007julien a écrit:

        Comment peut-on prétendre faire de la programmation quant on massacre le français à ce point !


        Quel est le rapport ? Il n'y a pas que les Français qui développent si je ne m'abuse. Tu peux lui reprocher son Français (il est vrai que ça pique les yeux j'aurais aussi fait un reproche) mais pas avec cette comparaison.

        PS : d'ailleurs c'est "quand on massacre", même si on fait la liaison avec la consonance "t", ça s'écrit avec un d.

        NicolasDreux a écrit:

        je débute en js est j utilise THREE.js .


        Je te conseillerais alors de t'attaquer à des bibliothèques moins difficile. Tu te plonge direct dans quelque chose de costaud là.

        Pas besoin de préciser le == sur du booléen (si tu es sûr que c'est un booléen). Et par convention on débug avec console.log, tu n'as plus qu'à regarder du côté de la console de ton navigateur (en général F12).

        if(collision){
           console.log("gfg");
        }



        -
        Edité par Shonen17 18 septembre 2017 à 15:37:29

        • Partager sur Facebook
        • Partager sur Twitter
          18 septembre 2017 à 15:40:53

          Shonen17 a écrit:

          007julien a écrit:

          Comment peut-on prétendre faire de la programmation quant on massacre le français à ce point !


          Quel est le rapport ? Il n'y a pas que les Français qui développent si je ne m'abuse. Tu peux lui reprocher son Français (il est vrai que ça pique les yeux j'aurais aussi fait un reproche) mais pas avec cette comparaison.

          NicolasDreux a écrit:

          je débute en js est j utilise THREE.js .


          Je te conseillerais alors de t'attaquer à des bibliothèques moins difficile. Tu te plonge direct dans quelque chose de costaud là.

          Pas besoin de préciser le == sur du booléen (si tu es sûr que c'est un booléen). Et par convention on débug avec console.log, tu n'as plus qu'à regarder du côté de la console de ton navigateur (en général F12).

          if(collision){
             console.log("gfg");
          }



          j'avais eu l'idée de faire comme l'exemple que tu me montre mais sa revient au même aucune détection puis la console n'afficher pas de problème. 

          je ne comprend pas 

          -
          Edité par NicolasDreux 18 septembre 2017 à 15:48:17

          • Partager sur Facebook
          • Partager sur Twitter
            18 septembre 2017 à 15:48:50

            Dans ce cas affiche collision dans le debug, voir à quoi il correspond. Si il est toujours à false c'est que la collision n'est pas détectée et soit il faut se pencher sur la bibliothèque soit montrer un peu plus de code.
            • Partager sur Facebook
            • Partager sur Twitter
              18 septembre 2017 à 17:27:48

              Shonen17 a écrit:

              Dans ce cas affiche collision dans le debug, voir à quoi il correspond. Si il est toujours à false c'est que la collision n'est pas détectée et soit il faut se pencher sur la bibliothèque soit montrer un peu plus de code.


              Toujours rien dans la console voila le code de la page.

              <!DOCTYPE html>
              <html>
              	<head>
              		<meta charset=utf-8>
              		<title>My first three.js app</title>
              		<style>
              			body { margin: 0; }
              			canvas { width: 100%; height: 100% }
              		</style>
              	</head>
              	<body>
              		<script src="build/three.js"></script>
              		<script src="cannon/build/cannon.js"></script>
              		<script src="cannon/build/cannon.demo.js"></script>
              		<script src="cannon/libs/dat.gui.js"></script>
              		<script src="cannon/libs/TrackballControls.js"></script>
              		<script src="cannon/libs/Detector.js"></script>
              		<script src="cannon/libs/Stats.js"></script>
              		<script src="cannon/libs/smoothie.js"></script>
              		<script>
              			// créer la scene la camera la fenetre graphique.
              			var scene = new THREE.Scene();
              			var camera = new THREE.PerspectiveCamera(75 , window.innerWidth/window.innerHeight , 0.1 , 1000);
              			var fenetre = new THREE.WebGLRenderer();
              			fenetre.setSize(window.innerWidth , window.innerHeight);
              			document.body.appendChild(fenetre.domElement);
              			//on créer notre cube.
              			var texture = new THREE.TextureLoader().load('images/perso.jpg');
              			var geometry = new THREE.BoxGeometry(1,1,1);
              			var material = new THREE.MeshBasicMaterial( {map:texture} );
              			var cube = new THREE.Mesh(geometry , material);
              			scene.add(cube);
              			//on créer notre 2 cube.
              			var texturede = new THREE.TextureLoader().load('images/terain.jpg');
              			var geometry1 = new THREE.BoxGeometry(10,1,10);
              			var material1 = new THREE.MeshBasicMaterial( {map:texturede} );
              			var cube1 = new THREE.Mesh(geometry1 , material1);
              			scene.add(cube1);
              			cube1.position.y = -0.99;
              			//on créer notre 3 cube.
              			var texture3 = new THREE.TextureLoader().load('images/block.jpg');
              			var geometry3 = new THREE.BoxGeometry(1,1,1);
              			var material3 = new THREE.MeshBasicMaterial( {map:texture3} );
              			var cube3 = new THREE.Mesh(geometry3 , material3);
              			scene.add(cube3);
              			cube3.position.x = -1.50;
              
              				firstBB = new THREE.Box3().setFromObject(cube);
              
              				secondBB = new THREE.Box3().setFromObject(cube3);
              
              				var collision = firstBB.isIntersectionBox(secondBB);
              				if(collision){
              				   console.log(collision);
              				}
              			
              			document.addEventListener('keydown', function (e){
              				if(e.keyCode == 38) {
              					 e.preventDefault();
              					camera.position.z += -0.1;
              					cube.position.z += -0.1;
              				}
              				if(e.keyCode == 40) {
              					 e.preventDefault();
              					camera.position.z += 0.1;
              					cube.position.z += 0.1;
              				}
              				if(e.keyCode == 37) {
              					 e.preventDefault();
              					camera.position.x += -0.1;
              					cube.position.x += -0.1;
              				}
              				if(e.keyCode == 39) {
              					 e.preventDefault();
              					camera.position.x += 0.1;
              					cube.position.x += 0.1;
              				}
              				if(e.keyCode == 32) {
              					 e.preventDefault();
              					camera.position.y += 0.1;
              				}
              				if(e.keyCode == 16) {
              					 e.preventDefault();
              					camera.position.y += -0.1;
              				}
              			});
              			camera.position.z = 5;
              			
              			var anime = function(){
              				requestAnimationFrame(anime);
              				fenetre.render(scene , camera);
              			}
              			anime();
              		</script>


              désolé d'avance si mon code n'ai pas propre 

              -
              Edité par NicolasDreux 18 septembre 2017 à 17:29:58

              • Partager sur Facebook
              • Partager sur Twitter
                19 septembre 2017 à 12:28:06

                Affiche la variable collision mais hors de ta condition, aucun intérêt de l'afficher en la testant avant.

                var collision = firstBB.isIntersectionBox(secondBB);
                console.log(collision);



                • Partager sur Facebook
                • Partager sur Twitter
                  19 septembre 2017 à 16:25:55

                  Shonen17 a écrit:

                  Affiche la variable collision mais hors de ta condition, aucun intérêt de l'afficher en la testant avant.

                  var collision = firstBB.isIntersectionBox(secondBB);
                  console.log(collision);




                  j'ai effectivement une erreur la variable collision reste en false malgré que par la suite je vais sur le block
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 septembre 2017 à 12:02:45

                    Dans ce cas il faut voir si tu utilise la bonne fonction. Je ne connais pas assez three.js donc je ne connais pas isIntersectionBox.

                    Comme dit précédemment tu t'attaque à du lourd pour un débutant en js.

                    Essaye de voir avec intersectsBox, mais je ne te promet rien.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 septembre 2017 à 12:19:24

                      Shonen17 a écrit:

                      Dans ce cas il faut voir si tu utilise la bonne fonction. Je ne connais pas assez three.js donc je ne connais pas isIntersectionBox.

                      Comme dit précédemment tu t'attaque à du lourd pour un débutant en js.

                      Essaye de voir avec intersectsBox, mais je ne te promet rien.


                      après comme je dit débutant c'est que je ne serai pas vraiment juger mon niveau dans le domaine je connais les bases est tout mais de la a ne pas me considérer comme débutant j'évite /: 

                      le problème avec three.js c'est que la documentation officiel au départ est bien guider mais après sa suis plu est on a le droit que a des exemples qui sont mélanger avec d'autres choses est on voit même pas le code donc pour apprendre c'est galère en plus sur internet ils y a pas beaucoup d'explication précise au sujet de three.js

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Problème de vérification True False

                      × 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