2017-02-10 10 views
-1

をjavascriptで新しくして、ゲームプログラミングのために大学のコースを受講しました。メモ帳のみを使用します。今はオブジェクトを移動しなければなりません。この場合、文字「o」は左から右に移動しなければなりません。私の教授は、オブジェクトを画面の上下に移動するコードを提供していますので、「上」を「左」に切り替えるようにしましたが、動きはまだありません。Javascriptで変数を左から右に移動する必要があります。教授は、サンプルとして

教授サンプル:

<!-- Microsoft Edge, IE10/11, FireFox, Chrome --> 
<!DOCTYPE html> 
<html> 
<head> 
    <script type="text/javascript"> 
     var bH = document.documentElement.clientHeight; // return the browser’s height 
     function init() { 
      var m1 = document.getElementById("m1"); // m1 represent m1 
      var y = parseInt(m1.style.top); // y-coordinate of m1 
      if (y >= bH) { 
       y = 0; 
      } else { 
       y++; 
      } 
      m1.style.top = y + "px"; 
      s1 = setTimeout("init()", 10); // wait 10 milliseconds and then call init 
     } 
     window.onload = function() { 
      init(); // onload event occurs right after a page is loaded 
     } 
    </script> 
</head> 
<body> 
    <span id="m1" style="position: absolute; top: 0px">o</span> 
</body> 
</html> 

私の試み:;を使用して

<!-- Chrome --> 
<!DOCTYPE html> 
<html> 
<head> 
    <script type="text/javascript"> 
     var bW = document.documentElement.clientWidth; 
     function init() { 
      var o = document.getElementById("o"); 
      var x = parseInt(o.style.left); 
      if (x >= bW) { 
       x = 0; 
      } else { 
       x++; 
      } 
      o.style.left = x + "px"; 
      s1 = setTimeout("init()", 10); 
     } 
     window.onload = function() { 
      init(); 
     } 
    </script> 
</head> 
<body> 
    <span id="o" style="position: absolute; left: 0px">o</span> 
</body> 
</html> 
+1

のremove '(のみJS部);'最後に'window.onload = function(); '。 – prasanth

+0

大丈夫それを削除しました – SukiTheDog

答えて

1

2〜3つのミス

  1. window.onload = function();後は
  2. 間違っている「内部機能を追加しないでください"s1=setTimeout("init()", 10);(あなたのケースで動作しない理由、それはそうでない場合も動作しますが、私は正確に把握することはできません)

ソリューション:

var bW = document.documentElement.clientWidth; 

function init() { 
    var o = document.getElementById("o"); 
    var x = parseInt(o.style.left); 
    if (x >= bW){ 
    x = 0; 
    } 
    else{ 
    x++; 
    } 
    o.style.left = x + "px"; 
    s1=setTimeout(init(), 10); 
} 

window.onload = function(){ 
    init(); 
} 
+0

構文の修正をありがとう、ありがとうございますが、なぜそれが動作しないのか理解できません。別の男が修正でコメントし、私は "このコードを実行する"ボタンを押すと、ここで働いていた笑、 – SukiTheDog

関連する問題