现在的位置: 首页 > web前端 > 正文

js键盘事件实现人物的行走

2020年02月18日 web前端 ⁄ 共 1928字 ⁄ 字号 评论关闭

本文实例为大家分享了js键盘事件实现人物行走的具体代码,供大家参考,具体内容如下

描述:

小时候喜欢玩的一个游戏,魔塔,实现了人物的行走,以及跳跃,当然是2D的效果。

用到的图:

效果:

代码:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> html { background-color: deepskyblue; } p { width: 32px; height: 32px; background-image: url("img/Actor01-Braver03.png"); position: absolute; } </style></head><body> <p></p> <script> var key=0; var bool=false; var speed=2;//每次行走的距离 var actor;//人物p 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("p"); 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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

以上就上有关js键盘事件实现人物的行走的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

抱歉!评论已关闭.