2016-10-26 6 views
-1

私はFactory Tycoonという名前のゲームに取り組んでおり、自分で解決できないバグを見つけました。 1秒ごとにあなたのアイテムがあなたのアイテムに何かプラスされますが、それは失敗しています。コードをテストしてください。コード:どうすればsetIntervalの部分を修正できますか?

<!DOCTYPE html> 
<html> 

<head> 

    <title>Factory Tycoon</title> 
    <script type="text/javascript"> 
     var money = 1000; 
     var items = 0; 
     var itemsps = 1; 
     var dropper1Cost = 100; 
     var dropper1Audio = new Audio('Audio/dropper1Sound.mp3'); 

     function addDropper() { 
      if (money <= dropper1Cost - 1) { 
       alert('Not Enough Money.') 
      } 
      if (money >= dropper1Cost) { 
       dropper1Audio.play() 
       itemsps += 1; 
       money -= dropper1Cost; 
       dropper1Cost += 100; 
      } 
     } 

     setInterval(function renderMoney() { 
      document.getElementById('money').innerHTML = "Money:" + money; 
     }) 

     setInterval(function renderItemsProcessedPS() { 
      document.getElementById('items').innerHTML = "Items Processed:" + items; 
     }) 

     setInterval(function renderItemsProcessedPS() { 
      document.getElementById('itemsps').innerHTML = "Items Processed Per   Second:" + itemsps; 
     }, 1000) 
    </script> 
</head> 

<h4 id="money"></h4> 
<h4 id="items"></h4> 
<h4 id="itemsps"></h4> 

<body> 
    <img src="Images/dropper1IMG.png" onclick="addDropper()"> 

</html> 

私はちょうど今夜それを開発し始めたので、あまりコードはありません:)。

+0

を持っているだけでなく、あなたのsetIntervalsが何時間に答えるため – epascarello

答えて

0

コード内のいくつかの問題があります:

  • <h4>要素が
  • </body>終了タグは、すべての要素がチャンスがあった前に呼び出され
  • setInterval不足している<body>要素の内側にする必要がありますロードするとエラーになるので、initの関数でラップして、ボディロード時に呼びます。

サイドノートで、このコードは、ロードイベントのaddEventListenerなどを最適化することができますが、ここであなたが開始

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 

 
    <title>Factory Tycoon</title> 
 
    <style> 
 
    span { display: inline-block; padding: 5px; background: #ddd; } 
 
    </style> 
 
    <script type="text/javascript"> 
 
    var money = 1000; 
 
    var items = 0; 
 
    var itemsps = 1; 
 
    var dropper1Cost = 100; 
 
    var dropper1Audio = new Audio('Audio/dropper1Sound.mp3'); 
 

 
    function addDropper() { 
 
     if (money <= dropper1Cost - 1) { 
 
     alert('Not Enough Money.') 
 
     } 
 
     if (money >= dropper1Cost) { 
 
     dropper1Audio.play() 
 
     itemsps += 1; 
 
     money -= dropper1Cost; 
 
     dropper1Cost += 100; 
 
     } 
 
    } 
 

 
    function init() { 
 
     setInterval(function renderMoney() { 
 
     document.getElementById('money').innerHTML = "Money:" + money; 
 
     }) 
 

 
     setInterval(function renderItemsProcessedPS() { 
 
     document.getElementById('items').innerHTML = "Items Processed:" + items; 
 
     }) 
 

 
     setInterval(function renderItemsProcessedPS() { 
 
     document.getElementById('itemsps').innerHTML = "Items Processed Per   Second:" + itemsps; 
 
     }, 1000) 
 
    } 
 
    </script> 
 
</head> 
 

 
<body onload="init();"> 
 

 
    <h4 id="money"></h4> 
 
    <h4 id="items"></h4> 
 
    <h4 id="itemsps"></h4> 
 

 
    <span onclick="addDropper()">Click Me</span> 
 

 
</body> 
 
</html>

+0

感謝を持っていませんが、私はそれを実行し、setInterval関数が動作しないので、コードはまだ動作しません。また、

タグについては、私は他のすべてのゲームで頭を尽くして成功しました。 –

+0

@TobyBridle 1:上記のコードは動作します。それがあなたのコードにない場合、あなたはおそらく上記のことを逃したでしょう。 ... 2: ''タグの前に '

'のような要素を入れるのは無効です。一部のブラウザでは正しいものをレンダリングしようとしますが、一部のブラウザではレンダリングしないため、結果は予測できません。 ...適切なhtmlコードを作成するかどうかはあなたに任されています。もしあなたがこの一般公開を公開しようとするなら、あなたはそれが想定されている方法に従わないで多くの問題に遭遇します – LGSon

+0

どのブラウザ私はよくHTMLを使用するときにクロムを使用します。コードスニペットを実行しても機能しません。すべての画像とサウンドは機能しますが、アイテムのincreasePerSecondは動作しません。多くのおかげで、 –

関連する問題