js如何利用键盘事件实现人物行走_WEB前端开发

后端开发 后端开发 4周前 (03-11) 12次浏览 0个评论 扫描二维码

html如何提高页面的加载速度_WEB前端开发

本文来自html入门教程栏目,文中为大家介绍了html提高页面的加载速度的方法,具有一定的参考价值,希望对大家有所帮助。html提高页面的加载速度的方法:1、减少HTTP的请求;2、定义图片的宽和高。

js如何利用键盘事件实现人物行走_WEB前端开发

使用的图:

js如何利用键盘事件实现人物行走_WEB前端开发

效果图:

css如何实现始终将footer固定在底部_WEB前端开发

本文为大家介绍了css实现始终将footer固定在底部的方法,具有一定的参考价值,希望对大家有所帮助。实现方法:【position: fixed;left: 0px;z-index: 9999;】。

js如何利用键盘事件实现人物行走_WEB前端开发

(推荐教程:javascript教程)

实例代码:

<!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);
      //按键驱动不能实现 实现的是通过按键触发相应动画 实现我们的人物的帧动画 跳转
    }
     
    function keyHandler(e) {
      bool=e.type==="keydown";
      key=e.keyCode;
      if(!bool){
        num=0;
        actor.style.backgroundPositionX=-num*WIDTH+"px";
      }
      if(key===32 && !jumpBool){//跳跃 空格驱动
        jumpBool=true;
      }
    }
     
    function animation() {
      jump();
      if(!bool)return;
      walk();//单方向行走 实现
      changeDirection();//方向确定时 内部行走的实现
    }
     
    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>

相关视频教程推荐:javascript视频教程

以上就是js如何利用键盘事件实现人物行走的详细内容,更多请关注ki4网其它相关文章!

ps和pscc有什么区别_WEB前端开发

ps和pscc的区别:1、pscc是cs的最新版本,功能更优化,内存更小,更简易;2、pscc新版本的智能锐化,图片放大保留更多细节;3、pscc可以一次选择多个路径路径的隔离编辑模式。

喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址