最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

描述:

小時(shí)候喜歡玩的一個(gè)游戲,魔塔,實(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();//方向確定時(shí) 內(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)文章

  • javascript寫的一個(gè)鏈表實(shí)現(xiàn)代碼

    javascript寫的一個(gè)鏈表實(shí)現(xiàn)代碼

    今天在百度上看到有人問怎么用Javascript 寫一個(gè)學(xué)生管理系統(tǒng)。個(gè)人認(rèn)為沒有什么實(shí)現(xiàn)價(jià)值。無聊練練手吧,很久沒寫JS了。
    2009-10-10
  • JS Select下拉框(支持輸入模糊查詢)

    JS Select下拉框(支持輸入模糊查詢)

    這篇文章主要為大家詳細(xì)介紹了JS Select下拉框的相關(guān)資料,支持輸入模糊查詢,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • javascript跨域的方法匯總

    javascript跨域的方法匯總

    JavaScript出于安全方面的考慮,不允許跨域調(diào)用其他頁面的對象。但在安全限制的同時(shí)也給注入iframe或是ajax應(yīng)用上帶來了不少麻煩。這里把涉及到跨域的一些問題簡單地整理一下
    2015-10-10
  • JS判斷字符串變量是否含有某個(gè)字串的實(shí)現(xiàn)方法

    JS判斷字符串變量是否含有某個(gè)字串的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄狫S判斷字符串變量是否含有某個(gè)字串的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • javascript中定義類的方法詳解

    javascript中定義類的方法詳解

    這篇文章主要詳細(xì)介紹了javascript中定義類的方法的相關(guān)資料,需要的朋友可以參考下
    2015-02-02
  • 一個(gè)的簡易文本編輯器源碼

    一個(gè)的簡易文本編輯器源碼

    一個(gè)的簡易文本編輯器源碼...
    2007-03-03
  • 前端實(shí)現(xiàn)全局主題切換功能實(shí)例代碼

    前端實(shí)現(xiàn)全局主題切換功能實(shí)例代碼

    這篇文章主要介紹了如何使用ReactHook和Context實(shí)現(xiàn)全局主題切換的功能,通過創(chuàng)建一個(gè)Context對象和一個(gè)ThemeProvider組件,可以將當(dāng)前主題存儲在Context中,并提供一個(gè)切換主題的方法,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2025-03-03
  • JS實(shí)現(xiàn)點(diǎn)擊li標(biāo)簽彈出對應(yīng)的索引功能【案例】

    JS實(shí)現(xiàn)點(diǎn)擊li標(biāo)簽彈出對應(yīng)的索引功能【案例】

    這篇文章主要介紹了JS實(shí)現(xiàn)點(diǎn)擊li標(biāo)簽彈出對應(yīng)的索引功能,結(jié)合具體實(shí)例形式分析了javascript事件響應(yīng)、元素遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • 自己編寫的支持Ajax驗(yàn)證的JS表單驗(yàn)證插件

    自己編寫的支持Ajax驗(yàn)證的JS表單驗(yàn)證插件

    創(chuàng)建一個(gè)JavaScript表單驗(yàn)證插件,可以說是一個(gè)繁瑣的過程,涉及到初期設(shè)計(jì)、開發(fā)與測試等等環(huán)節(jié)。實(shí)際上一個(gè)優(yōu)秀的程序員不僅是技術(shù)高手,也應(yīng)該是善假于外物的。本文介紹的這個(gè)不錯的JavaScript表單驗(yàn)證插件,支持ajax驗(yàn)證,有需要的小伙伴可以參考下
    2015-05-05
  • 關(guān)于this和self的使用說明

    關(guān)于this和self的使用說明

    剛接觸python的時(shí)候,最不習(xí)慣的事情,就是每個(gè)方法都要加一個(gè)self。無論Javascript還是C#,都直接一個(gè)this搞定,干嘛非要加一個(gè)變量self。
    2010-08-08

最新評論

北票市| 晋州市| 团风县| 磐安县| 民权县| 邹城市| 洞头县| 虎林市| 任丘市| 榆中县| 会理县| 安远县| 镇江市| 宽城| 岐山县| 社旗县| 嘉荫县| 大化| 和静县| 青州市| 东乡族自治县| 湄潭县| 界首市| 澎湖县| 芦溪县| 八宿县| 延寿县| 白朗县| 鸡东县| 丰顺县| 阳泉市| 嵊州市| 梓潼县| 南投县| 天长市| 衡阳市| 安康市| 芷江| 开原市| 太康县| 枣阳市|