欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js鍵盤事件實(shí)現(xiàn)人物的行走

 更新時間:2020年01月17日 15:15:21   作者:SSSkyCong  
這篇文章主要為大家詳細(xì)介紹了js鍵盤事件實(shí)現(xiàn)人物的行走,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了js鍵盤事件實(shí)現(xiàn)人物行走的具體代碼,供大家參考,具體內(nèi)容如下

描述:

小時候喜歡玩的一個游戲,魔塔,實(shí)現(xiàn)了人物的行走,以及跳躍,當(dāng)然是2D的效果。

用到的圖:

效果:

代碼:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    html
    {
      background-color: deepskyblue;
    }
    div
    {
      width: 32px;
      height: 32px;
      background-image: url("img/Actor01-Braver03.png");
      position: absolute;
    }
  </style>
</head>
<body>
  <div></div>
  <script>
    var key=0;
    var bool=false;
    var speed=2;//每次行走的距離
    var actor;//人物div
    const HEIGHT=33;//人物的高
    const WIDTH=32;//人物的寬
    var arr=[1,3,2,0];//4排圖像 代表 下 左 右 上
    var num=0;
    var jumpBool=false;
    var actorSkinSpeed=8;
    var jumpSpeed=-15;
    init();
    function init() {
      window.addEventListener("keydown",keyHandler);
      window.addEventListener("keyup",keyHandler);
      actor=document.querySelector("div");
      setInterval(animation,16);
      //按鍵驅(qū)動不能實(shí)現(xiàn) 實(shí)現(xiàn)的是通過按鍵觸發(fā)相應(yīng)動畫 實(shí)現(xiàn)我們的人物的幀動畫 跳轉(zhuǎn)
    }
    
    function keyHandler(e) {
      bool=e.type==="keydown";
      key=e.keyCode;
      if(!bool){
        num=0;
        actor.style.backgroundPositionX=-num*WIDTH+"px";
      }
      if(key===32 && !jumpBool){//跳躍 空格驅(qū)動
        jumpBool=true;
      }
    }
    
    function animation() {
      jump();
      if(!bool)return;
      walk();//單方向行走 實(shí)現(xiàn)
      changeDirection();//方向確定時 內(nèi)部行走的實(shí)現(xiàn)
    }
    
    function jump() {
      if(!jumpBool)return;
      jumpSpeed+=1;
      if(jumpSpeed===15){
        jumpBool=false;
        jumpSpeed=-15;
        return;
      }
      actor.style.top=actor.offsetTop+jumpSpeed+"px";
    }
    
    function changeDirection() {
      actorSkinSpeed--;
      if(actorSkinSpeed>0) return;
      actorSkinSpeed=8;
      num++;
      if(num>3) num=0;
      actor.style.backgroundPositionX=-num*WIDTH+"px";
    }
 
    function walk() {
      switch (key){
        case 37://左 ×1 第二排
          actor.style.left=actor.offsetLeft-speed+"px";
          actor.style.backgroundPositionY=-arr[0]*HEIGHT+"px";
          break;
        case 38://上 ×3 第四排
          actor.style.top=actor.offsetTop-speed+"px";
          actor.style.backgroundPositionY=-arr[1]*HEIGHT+"px";
          break;
        case 39://右 ×2 第三排
          actor.style.left=actor.offsetLeft+speed+"px";
          actor.style.backgroundPositionY=-arr[2]*HEIGHT+"px";
          break;
        case 40://下 ×0 第一排
          actor.style.top=actor.offsetTop+speed+"px";
          actor.style.backgroundPositionY=-arr[3]*HEIGHT+"px";
          break;
 
      }
    }
  </script>
</body>
</html>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 對layui初始化列表的CheckBox屬性詳解

    對layui初始化列表的CheckBox屬性詳解

    今天小編就為大家分享一篇對layui初始化列表的CheckBox屬性詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JavaScript實(shí)現(xiàn)4位隨機(jī)驗(yàn)證碼的生成

    JavaScript實(shí)現(xiàn)4位隨機(jī)驗(yàn)證碼的生成

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)4位隨機(jī)驗(yàn)證碼的生成,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • javascript驗(yàn)證身份證號

    javascript驗(yàn)證身份證號

    這篇文章主要介紹了javascript驗(yàn)證身份證號,十分的詳細(xì),需要的朋友可以參考下
    2015-03-03
  • JS實(shí)現(xiàn)的幾個常用算法

    JS實(shí)現(xiàn)的幾個常用算法

    本文給大家分享日常中比較熟悉的常用的幾個算法用JS的實(shí)現(xiàn),非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • JavaScript中解析JSON數(shù)據(jù)的三種方法

    JavaScript中解析JSON數(shù)據(jù)的三種方法

    這篇文章主要介紹了JavaScript中解析JSON數(shù)據(jù)的三種方法,本文講解了eval()方法、new Function方法、JSON.parse()方法等三種方法,需要的朋友可以參考下
    2015-07-07
  • JavaScript閉包與作用域鏈實(shí)例分析

    JavaScript閉包與作用域鏈實(shí)例分析

    這篇文章主要介紹了JavaScript閉包與作用域鏈,結(jié)合實(shí)例形式分析了javascript閉包的具體概念、功能、并對比作用域鏈分析了閉包的相關(guān)使用技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-01-01
  • javascript實(shí)現(xiàn)前端成語點(diǎn)擊驗(yàn)證

    javascript實(shí)現(xiàn)前端成語點(diǎn)擊驗(yàn)證

    這篇文章主要介紹了javascript實(shí)現(xiàn)前端成語點(diǎn)擊驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • js仿百度貼吧驗(yàn)證碼特效實(shí)例代碼

    js仿百度貼吧驗(yàn)證碼特效實(shí)例代碼

    這篇文章主要介紹了js仿百度貼吧驗(yàn)證碼特效實(shí)例代碼,有需要的朋友可以參考一下
    2014-01-01
  • 自己寫了一個展開和收起的多更能型的js效果

    自己寫了一個展開和收起的多更能型的js效果

    展開和收起這樣的效果想必大家早就眼熟了吧,利用閑暇時間用js寫了一個具體功能:當(dāng)自己處于全部顯示的時候,點(diǎn)擊自己的收起,自己收起等等感興趣的你可以參考下哈
    2013-03-03
  • 使用js實(shí)現(xiàn)動態(tài)背景

    使用js實(shí)現(xiàn)動態(tài)背景

    這篇文章主要為大家詳細(xì)介紹了使用js實(shí)現(xiàn)動態(tài)背景,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論