分享
为什么问答平台  ›  专栏  ›  技术社区  ›  Reach

如何将document.createElement与elapsedTime一起使用? - How to use document.createElement with elapsedTime?

  •  2
  • Reach  · 技术社区  · 2 周前

    我在为一个学校项目做游戏。前提是屏幕右侧会有敌人,你必须杀死他们。我已经成功地创建了它们,所以它们被显示出来了,但是我不能让它们同时出现。 我该怎么做有什么建议吗?

    (对不起,如果这是一个很糟糕的公式,我是非常新的这些东西)

    我尝试过不同的方法来实现我的目标,通过使用elapsedtime函数,但我似乎无法使它在一点点工作。

    function createEnemy() {
      for(var i = 0; i < antallFiender; i++) {
        var nyFiende = document.createElement("img");
        nyFiende.setAttribute("src", "tenor.gif");
        nyFiende.setAttribute("class", "zombie");
        nyFiende.style.top = Math.floor(Math.random()*800) + "px";
    
        barnetEl.appendChild(nyFiende);
      }
      var zombieEl = document.querySelectorAll(".zombie");
    }
    
    2 回复  |  直到 2 周前
        1
  •  0
  •   Mayke da Rosa Herbst    2 周前

    您可以使用javascript setInterval 功能。使用此函数,可以在第一个参数中传递回调,在第二个参数中传递时间间隔(以毫秒为单位),即回调调用之间的时间间隔。所以会是这样的:

    function createEnemy() {
      var nyFiende = document.createElement("img");
      nyFiende.setAttribute("src", "tenor.gif");
      nyFiende.setAttribute("class", "zombie");
      nyFiende.style.top = Math.floor(Math.random()*800) + "px";
    
      barnetEl.appendChild(nyFiende);
      var zombieEl = document.querySelectorAll(".zombie");
    }
    
    setInterval(createEnemy, 1000);
    

    这样,每隔一秒钟你的函数就会被调用来创建一个敌人。

    如果要停止调用函数,应将间隔赋给变量,以便使用 clearInterval 要阻止它,如下所示:

    var enemyInterval = setInterval(createEnemy, 1000);
    
    clearInterval(enemyInterval);
    

    希望对你有帮助。

        2
  •  0
  •   Maheer Ali    2 周前

    你可以使用 setInterval() 减少 style.left 每秒或半秒的元素。

    function createEnemy() {
      for(let i = 0; i < antallFiender; i++) {
        var nyFiende = document.createElement("img");
        nyFiende.setAttribute("src", "tenor.gif");
        nyFiende.setAttribute("class", "zombie");
        nyFiende.style.top = Math.floor(Math.random()*800) + "px";
        nyFiende.style.left = Math.floor(Math.random()*800) + "px";
        barnetEl.appendChild(nyFiende);
        setInterval(() => {
             let x = parseInt(nyFiende.style.left);
             nyFiende.style.left -= x - 10;
        },500)
      }
      var zombieEl = document.querySelectorAll(".zombie");
    }