javascript / html SyntaxError:在函数体之后丢失}

时间:2016-10-08 09:25:09

标签: javascript html syntax-error

我收到一个错误,我不知道如何在函数体之后修复“SyntaxError:missing}”。 但我没有一个叫做body的功能, 我已经尝试在我的脚本中更改每个单词的主体。 它仍然在函数体之后说SyntaxError:missing}。 我的代码:

  // This is where stuff in our game will happen:
  var scene = new THREE.Scene();

  // This is what sees the stuff:
  var aspect_ratio = window.innerWidth / window.innerHeight;
  var camera = new THREE.PerspectiveCamera(75, aspect_ratio, 1, 10000);
  camera.position.z = 500;
  scene.add(camera);

  // This will draw what the camera sees onto the screen:
  var renderer = new THREE.WebGLRenderer( { antialias: true } );
  renderer.setSize(window.innerWidth - 10, window.innerHeight - 25);
  document.awesome.appendChild(renderer.domElement);

    function maker (tx1, tx2, tx3, tx4, tx5, tx6, x, y, z, wide, height, back) {
    var materials = [
    new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load(tx1)}),
    new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load(tx2)}),
    new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load(tx3)}),
    new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load(tx4)}),
    new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load(tx5)}),
    new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load(tx6)})
    ];
    var geometry = new THREE.BoxBufferGeometry(wide, height, back);
    mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
    return mesh;
    }
    function makeZombie(x, y, z) {
    //zombie
  head = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)
        head.userData = {part: "head"};

        awesome = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400) 
        awesome.userData = {part: "awesome"};
    //arms
    arm_l = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/    zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)
    arm_r = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)
        arm_l.userData = {part: "arm_l"};
        arm_r.userData = {part: "arm_r"};  
    //legs
    leg_l = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)
    leg_r = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)
            leg_l.userData = {part: "leg_l"};
            leg_r.userData = {part: "leg_r"};
        var zombie = new THREE.Object3D();
    zombie.add(head); 
        zombie.add(awesome);
        zombie.add(arm_r);
        zombie.add(arm_l);
        zombie.add(leg_l);
        zombie.add(leg_r);
        scene.add(zombie);

        head.position.set(0, 100, 0);
    arm_l.position.set(-58, 40, 40);
    arm_r.position.set(58, 40, 40);
    leg_l.position.set(-20, -120, 0);
    leg_r.position.set(20, -120, 0);
        arm_l.rotation.x = -Math.PI / 2;
        arm_r.rotation.x = -Math.PI / 2;
        arm_r.rotation.y = Math.PI;

        zombie.position.set(x, y, z);
        zombie.userData = {id: 1};
        mobs.push(zombie);
        canttouchthis.push(zombie);   
  }

  // make human
    //head
    human_head = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)

    human_awesome = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)
    //arms
    human_arm_l = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)
    human_arm_r = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)
    //legs
    human_leg_l = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)
    human_leg_r = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)

  var human = new THREE.Object3D();
  var placeholder = new THREE.Object3D();
  var pos = new THREE.Vector3();

  human.add(human_head); 
  human.add(human_awesome);
  human.add(human_arm_r);
  human.add(human_arm_l);
  human.add(human_leg_l);
  human.add(human_leg_r);
  placeholder.add(camera);
  placeholder.add(human);
  //placeholder.add(mobLookat);
  scene.add(placeholder);
  //scene.add(doghead);

  human_head.position.set(0, 100, 0);
  human_arm_l.position.set(-60, 5, 0);
  human_arm_r.position.set(60, 5, 0);
  human_arm_l.rotation.set(0, 0, -0.25);
  human_arm_r.rotation.set(0, 0, 0.25);
  human_leg_l.position.set(-20, -120, 0);
  human_leg_r.position.set(20, -120, 0);
  //mobLookat.position.set(0, 0, 0);

  //sound
  var bgSound = new Audio("sound/Bit Quest.ogg");
  bgSound.play();

  var moving_left = false;
  var moving_right = false;
  var moving_forward = false;
  var moving_back = false;
  var flying = false;
  var gameOver = false;
  var selectedclass;
  var hasclass;
  var spawners = [];
  var mobs = [];
  var canttouchthis = [];
  var loader = new THREE.TextureLoader();
  //keypress event
  document.addEventListener("keydown", function(event) {
    if (event.keyCode == 37) {
      placeholder.position.x = placeholder.position.x - 15;
      walk(5, 30);
      moving_left = true;
      turn();
    }
    if (event.keyCode == 39) {
      placeholder.position.x = placeholder.position.x + 15;
      walk(5, 30);
      moving_right = true;
      turn();
    }
    if (event.keyCode == 40) {
      placeholder.position.z = placeholder.position.z + 15;
      walk(5, 30);
      moving_back = true;
      turn();
    }
    if (event.keyCode == 38) {
      placeholder.position.z = placeholder.position.z - 15;
      walk(5, 30);
      moving_forward = true;
      turn();
    }
    if (event.keyCode == 32) {
      if (flying) {
        placeholder.position.y = placeholder.position.y + 40;
      }
      else {
        jump();
      }

    }
    if (event.keyCode == 16) {
        if (flying) {
          placeholder.position.y = placeholder.position.y - 40;
        }
    }

    });

  document.addEventListener("keyup", function () {
    human_arm_r.position.z = 0; 
    human_arm_l.position.z = 0;
    human_leg_r.position.z = 0;
    human_leg_l.position.z = 0;
    moving_left = false;
    moving_right = false;
    moving_forward = false;
    moving_back = false;
  });
  function classselect () {
    var input = prompt("Select your class, classes: warrior, archer, wizard", "Type here");
    if ((input != "warrior") && (input != "archer") && (input != "wizard")) {
      alert("thats not a class..."); 
    }
    else {
      alert("Selected class '" + input + "' !");
      chat("Your now a " + input + " !")
      selectedclass = input;
      hasclass = true;
      document.getElementById("classbutton").style.visibility = "hidden";
    }
  }

  Tree(500, 0, -75);
  Tree(-500, 0, -75);
  Tree(750, -1000, -75);
  Tree(-750, -1000, -75);
  Tree(0, -1200, -75);
  Treasure(-750, -1050, -135);
  function Tree(x, z, y) {  
    var top = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400);

    trunk = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400);
    top.position.y = 175;
    trunk.add(top);
    trunk.position.set(x, -75, z);
    scene.add(trunk);
    trunk.position.y = y;

  }
  function Treasure(x, z, y) {  

        chest = maker ("textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png" , "textures/mob/zombie/zombie_headleft.png", "textures/mob/zombie/zombie_headleft.png", 0, 0, 0, 200, 200, 400)

    chest.position.set(x, -75, z);
    scene.add(chest);
    chest.position.y = y;

  }
  Flower();
  function Flower() {
    for (i = 0; i < 2000; i++) {
    var negative = Math.floor((Math.random() * 4) + 1);
    var x = Math.floor((Math.random() * 5000) + -5000);
    var z = Math.floor((Math.random() * 5000) + -5000);
    if (negative == 1) {
      x = -x;
    }
    if (negative == 2) {
      z = -z;
    }
    if (negative == 3) {
      x = -x;
      z = -z;
    }
    var y = -225;
    var color = Math.floor((Math.random() * 4) + 1); 
    if (color == 1) {
      color = "textures/flower_pink.png"
    }
    if (color == 2) {
      color = "textures/flower_blue.png"
    }
    if (color == 3) {
      color = "textures/flower_purple.png"
    }       
    if (color == 4) {
      color = "textures/grass.png"
    }   
    var petals = new THREE.Mesh(
      new THREE.PlaneGeometry(60,60),
      new THREE.MeshBasicMaterial({map: new THREE.TextureLoader().load(color)}) 
    );
    scene.add(petals);
    //stem.add(petals);  
    //stem.add(leaf);
    petals.position.set(x, y, z);
    petals.position.y = petals.position.y + 65;
    //leaf.position.x = leaf.position.x + 10;
    //leaf.position.z = leaf.position.z - 10;
    }

  place_spawner(0, 0, 0, 1, 7, 5);
  function place_spawner (x, y, z, mob, rate, radius){
    var spawner = new THREE.Object3D();
    spawner.position.set(x, y, z);
    spawner.userData = {mob:mob, rate:rate, radius:radius};
    spawners.push(spawner);
    //console.log(spawners);
    for (i = 0; i < spawners.length; i++ ) {
      console.log(spawners[i].userData.radius);
    }
  }
  window.setInterval(function () {
    for (i = 0; i < spawners.length; i++) {
      if (spawners[i].userData.mob == 1) {
    makeZombie(spawners[i].position.x, spawners[i].position.y, spawners[i].position.z);
      }
      console.log(spawners[i]);
    }       
  }, 10000)
  //function dogAI() {
    //console.log(mobLookat.position)
    //doghead.lookAt(mobLookat.position);
    //doghead.translateZ(2);
    //doghead.position.y = -60;

  //}
  function mobAI_update () {
    console.log(mobs);
    for (i = 0; i < mobs.length; i++) {
      if (mobs[i].userData.id == 1) {
        mobs[i].lookAt(placeholder.position);
        mobs[i].translateZ(10);
        mobs[i].position.y = 0;
      }
    } 
  }
   function makeLog () {
      var holder = document.createElement("div");
      holder.style.height = "75px";
      holder.style.width = "450px";
      holder.style.overflow = "auto";
      holder.style.border = "1px solid #666";
      holder.style.backgroundColor = "#ccc";
      holder.style.padding = "8px";
      holder.style.position = "absolute";
      holder.style.bottom = "50px";
      holder.style.right = "20px";
      document.awesome.appendChild(holder);

      return holder;
    }

  var log = makeLog();
  chat("start");

  function chat (message) {
    if (message.charAt(0) == "/") {
      command(message.substr(1));
    }
    else {
      var holder = document.createElement("div");
      holder.textContent = message;
      log.appendChild(holder); 
    }
  }
  function command (command) {
    chat(command);
    if (command === "fly") {
      chat("toggled flying");
      if (flying === false) {
        flying = true;  
      }
      else {
        flying = false;
        placeholder.position.y = 0;
      }

    }
    if (command == "full") {
      launchIntoFullscreen(document.documentElement);
      chat("press 'esc' to exit")
    }
  }
  function walk (speed, length) {
    var position = Math.sin(clock.getElapsedTime()*speed)*length;
    human_arm_r.position.z = position; 
    human_arm_l.position.z = -position;
    human_leg_r.position.z = -position;
    human_leg_l.position.z = position;
  }
  function turn () {
    var direction = 0;
    if (moving_forward) direction = Math.PI;
    if (moving_back) direction = 0;
    if (moving_left) direction = -Math.PI/2;
    if (moving_right) direction = Math.PI/2;
    spinHuman(direction);
  }
  function spinHuman (direction) {
    new TWEEN.
      Tween({y: human.rotation.y}).
      to({y: direction}, 500).
      onUpdate(function () {
        human.rotation.y = this.y;
      }).
      start();
  }
  function jump () { 
    new TWEEN
      .Tween({jump: 0})
      .to({jump: Math.PI}, 600)
      .onUpdate(function () {
        placeholder.position.y = 250* Math.sin(this.jump);
      })
      .start();
  }

  function launchIntoFullscreen(element) {
  if(element.requestFullscreen) {
    element.requestFullscreen();
  } else if(element.mozRequestFullScreen) {
    element.mozRequestFullScreen();
  } else if(element.webkitRequestFullscreen) {
    element.webkitRequestFullscreen();
  } else if(element.msRequestFullscreen) {
    element.msRequestFullscreen();
  }

  // Now, show what the camera sees on the screen:
  function update() {
    requestAnimationFrame(update);
    renderer.render(scene, camera);
    mobAI_update();
    TWEEN.update();    
  }
  update();

和我的HTML:

<html>
    <head>
        <title>evoker of light</title>
    </head>
    <style>
        html, body {
            margin:0;
            padding:0;
        }
    </style>
    <script type="text/javascript">
            function getValue(){
               var input = prompt("", "Type here");
               chat (input);
            }
            function submitchat(){
              chat(document.getElementById("chatfield").value)
              document.getElementById("chatfield").value = "";
            }
      </script> 
   <body>
      <script src="game.js"></script>
      <input type="button" style="position: absolute; top: 320px; width: 200px; left: 670px; height: 30px;" value="Select Class" onclick="classselect()" id="classbutton"   onfocus="this.blur()"/>
      <input type="text" style="position: absolute; top: 760px; width: 467px; right: 20px; height: 30px;" name="chat" id="chatfield"/>
      <input type="button" style="position: absolute; top: 760px; width: 80px; right: 10px; height: 30px;" value="Submit" onclick="submitchat()" id="chatbutton"        onfocus="this.blur()"/>
   </body>
<script src="library/threejs/build/three.js"></script>
<script src="http://gamingJS.com/Tween.js"></script>
<script src="http://gamingJS.com/ChromeFixes.js"></script>
<script src="http://gamingJS.com/Sounds.js"></script>
</html>

这很奇怪...... 谢谢!

1 个答案:

答案 0 :(得分:0)

错误是由于您没有正确缩进而导致错过关闭括号。它发生在launchIntoFullscreen - 函数:

function launchIntoFullscreen(element) {
if(element.requestFullscreen) {
  element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
  element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
  element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
  element.msRequestFullscreen();
}

你可能会注意到,最后一个括号不是关闭函数体,而是else if。通过功能体,花括号{...}中的部件是固定的。
要解决此问题,需要在末端添加一个闭合支架。

正确的缩进可帮助您找到这些错误
迎接!