实现的关键在于控制坐标x,y以及对象的创建和使用。直接看完整源码的直接看最后。
先谈一谈,x与y坐标的获取以及移动,获取元素用的是:document.getElementById(ByTag之类的也行,但是害怕有相同的还要去排除)。获取元素以后怎么移动呢?我们可以通过修改属性top和left来进行
代码可以这样写:

 var mymario = document.getElementById("mymario");var left = mymario.style.left;left = parseInt(left.substr(0, left.length - 2));mymario.style.left = (left+10) + "px";

为什么要使用substr?因为left不仅有数字还有px,比如100px。所以要删除px这两个字符。
完整代码:
html文件的代码:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><link href="css/game.css" type="text/css" rel="stylesheet" /><script language="JavaScript" type="text/javascript">function Mario() {this.x = 0;this.y = 0;this.move = function(direct) {switch(direct) {case 1:var mymario = document.getElementById("mymario");var left = mymario.style.left;// window.alert( left );left = parseInt(left.substr(0, left.length - 2));mymario.style.left = (left+10) + "px";break;case 2:var mymario = document.getElementById("mymario");var top = mymario.style.top;top = parseInt(top.substr(0, top.length - 2));mymario.style.top = (top+10) + "px";break;case 3:var mymario = document.getElementById("mymario");var left = mymario.style.left;left = parseInt(left.substr(0, left.length - 2));mymario.style.left = (left-10) + "px";break;case 4:var mymario = document.getElementById("mymario");var top = mymario.style.top;top = parseInt(top.substr(0, top.length - 2));mymario.style.top = (top-10) + "px";break;default:break;}}}//全局函数function move(direct) {switch(direct) {case 1:mario.move(direct);break;case 2:mario.move(direct);break;case 3:mario.move(direct);break;case 4:mario.move(direct);break;default:break;}}var mario = new Mario();</script>>
</head><body>
<div class="game"><img id="mymario" style="left: 100px;top: 50px; width: 200px;position: absolute;"src="../static/IMG_20210124_113556.jpg" />
</div>
<table class="control" border="1px"><tr><td colspan="3">控制台</td></tr><tr border="1px"><td></td><td><input type="button" value="up" onclick="move(4)" /></td><td></td></tr><tr><td><input type="button" value="left" onclick="move(3)" /></td><td>mid</td><td><input type="button" value="right" onclick="move(1)" /></td></tr><tr><td></td><td><input type="button" value="down" onclick="move(2)" /></td><td></td></tr></table>
</body></html>

CSS文件的代码(game.css);

.game{width:500px;height: 400px;background: pink;position: absolute;
}
.control{width: 200px;height: 100px;border: 1px solid red;
}

运行结果:

js实现人物移动(附有全部代码以及解析)相关推荐

  1. 中国大学MOOC课程《Python语言程序设计》第6章 文本词频人物统计 threekingdoms三国演义代码及解析

    以下内容为嵩天老师在课堂上讲解的,分析三国演义中top20人物,也就是出现次数最高的20个人物.为方便童鞋们拷贝,我把代码及解析放到下面,且我多费了点人工,整出top30.通过这个例子可以很好地理解解 ...

  2. 人员关系html,html5简单的人物关系图制作代码

    特效描述:html5 人物关系图制作.jQuery html5图片创建人物关系图,引入js和jtopo,可以动态修改图片,人物关系结构制作代码 代码结构 1. 引入JS 2. HTML代码 $(doc ...

  3. html 3d 人物,jquery html5三维线性人物关系图特效代码

    特效描述:jquery html5三维线性 人物关系图特效.人物关系图特效 代码结构 1. 引入JS 2. HTML代码 require.config({ packages:[{ name:'echa ...

  4. JS打字效果的动态菜单代码分享

    这篇文章主要介绍了JS打字效果的动态菜单,推荐给大家,有需要的小伙伴可以参考下. 这是一款基于javascript实现的打字效果的动态菜单特效代码,分享给大家学习学习. 小提示:浏览器中如果不能正常运 ...

  5. 原生js写三级联动 java_原生js三级联动的简单实现代码

    本文实例为大家分享了js查询天气应用,供大家参考,具体内容如下 实现功能:打开网页时显示用户所在城市的天气状况,在输入框输入城市可查询其它城市. 实现过程:先调用百度地图的API来获取用户所在的城市, ...

  6. 怎么在vue的@click里面直接写js_【转】为 Node.js 贡献你的力量 ———— 调试代码

    原文作者:百万扩散性甜面包 himself65 原文链接: 为 Node.js 贡献你的力量 ---- 调试代码​www.himself65.com Node.js 作为一个世界级的项目,能为它贡献源 ...

  7. CSS+JS灰色树型菜单导航代码

    代码简介: CSS+JS打造的树型菜单,没有怎么美化,颜色看上去也不很美,提供一种思路,真想用的朋友好好修改一下颜色,里面都有注释,相信通过你的努力,它最终的效果一定很漂亮. 代码内容: <!D ...

  8. JS实现星星评分功能实例代码(两种方法)

    转载自   JS实现星星评分功能实例代码(两种方法) 一.方法1 1.用到图片 2.结构和样式 <!DOCTYPE html> <html lang="en"&g ...

  9. php vue联动查询,使用vue.js实现联动效果的示例代码

    摘要:本篇文章主要介绍了使用vue.js实现联动效果的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧想用vue.js写一个联动效果,按照自己的思路实验了下,并没有 ...

最新文章

  1. 51岁雷军最后一次创业:要砸657亿造车,但小米「亏」得起吗?
  2. Android中自定义Dialog外形,去除黑底和白色边框
  3. 2021年第十六届全国大学生智能汽车竞赛赛道铺设规范
  4. 鹅厂机器人“穿着”轮滑鞋大玩前空翻,连人都不敢轻易尝试
  5. 简陋的会计凭证金额输入控件
  6. 趣学python3(35)-Newton迭代法解一元方程
  7. 手把手教你玩转SOCKET模型:重叠I/O篇
  8. realloc函_realloc(重新分配内存空间的函数)
  9. 华为云“创原会”:40+技术精英论道云原生2.0
  10. python数据结构list的extend与append的差别
  11. 维护建议--数据库备份
  12. 【POJ 3057】Evacuation【最大流+二分】
  13. 基于springboot毕业设计管理系统设计与实现(带论文)
  14. Linux服务器下安装vsftpd,搭建文件服务器
  15. 【易通慧谷】科技赋能金融,三新理念全面解读新金融
  16. 64位 iee754_IEEE754浮点数2008版
  17. php 微信平台,【php】微信公众平台
  18. 暴风播酷云二期J3455 DS918 1.04b引导6.23完美群晖教程,可硬洗,正常开关机、WOL
  19. JAVA EE(jsp)
  20. java基础巩固-宇宙第一AiYWM:为了维持生计,大数据Hadoop之HDFS分布式文件系统(HDFS读写流程、主从集群两种问题“单点故障”及“压力过大内存受限”、HDFS的架构设计)~整起

热门文章

  1. Python脚本实现WIFI网络的扫描、连接和断开
  2. kmspico_setup.exe运行提示系统资源不足,无法完成请求的服务
  3. 解决删除Volume报错的问题(二)
  4. Windows无法安装,选中的磁盘为GPT分区形式 --解决办法
  5. 四叉树lod结合灯塔AOI
  6. 表白公式计算机,表白公式数学公式简单的方式
  7. Web前端开发主要做什么
  8. JS 服务器推送技术 WebSocket 入门指北
  9. C++之enum与switch
  10. eclips快捷键大全