例子:韩顺平JavaScript----JS乌龟抓小鸡游戏
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>乌龟抓小鸡</title>
</head>
<body onkeydown="return move(event)"> <script language="JavaScript">
//相应用户点击按钮或者按下键盘
function move(obj){
//乌龟的高度和宽度
var wugui_height=45;
var wugui_width=75;
//公鸡的高度和宽度
var cock_height=53;
var cock_width=64;
//得到乌龟所在的div对象 DOM编程
var wugui=document.getElementById("wugui");
if(window.event){//window.event可以判断用户是通过按键盘还是点击 控制乌龟的
key=obj.keyCode;//获得用户按下键的code
}
var wugui_top=wugui.style.top;
var wugui_left=wugui.style.left;
//把获取的100px转成100;
wugui_top=parseInt(wugui_top.substring(0,wugui_top.indexOf("p")));
wugui_left=parseInt(wugui_left.substring(0,wugui_left.indexOf("p")));
//判断用户按的哪个键
if(obj.value=="向下"||key==83){
wugui_top=wugui_top+10;
wugui.style.top=(wugui_top+10)+"px";
}
else if(obj.value=="向上"||key==87){
wugui_top=wugui_top-10;
wugui.style.top=(wugui_top-10)+"px";
}
else if(obj.value=="向左"||key==65){
wugui_left=wugui_left-10;
wugui.style.left=(wugui_left-10)+"px"
}
else if(obj.value=="向右"||key==68){
wugui_left=wugui_left+10;
wugui.style.left=(wugui_left+10)+"px";
} //得到公鸡的left和top
var cock=document.getElementById("cock");
//得到公鸡当前的top和left
var cock_top=cock.style.top;
var cock_left=cock.style.left; //处理px后缀
cock_top=parseInt(cock_top.substring(0,cock_top.indexOf("p")));
cock_left=parseInt(cock_left.substring(0,cock_left.indexOf("p")));
//判断是否碰到公鸡
y=Math.abs(cock_top-wugui_top);//公鸡乌龟两点间的纵坐标绝对值
x=Math.abs(cock_left-wugui_left);//公鸡乌龟两点间的横坐标的绝对值 //方法一
xx=0;
yy=0; if(wugui_top<cock_top){//判断乌龟公鸡谁在上面 如果乌龟在上面
if(y<wugui_height) {
yy=1;
}
}
else{//乌龟在下面
if(y<cock_height){
yy=1;
}
} if(wugui_left<cock_left){//判断乌龟公鸡谁在左侧 if(x<wugui_width)//75 如果乌龟在左侧
{
xx=1;
}
}
else{
if(x<cock_width)//64
{
xx=1;
}
} if(xx==1&&yy==1)
{
alert("乌龟好猛啊");
}
}
</script>
<table border='1'>
<tr><td colspan="3" align="center">控制区域</td></tr>
<tr><td></td><td>
<input type="button" value="向上" onclick="move(this)"/>
</td><td></td></tr>
<tr><td>
<input type="button" value="向左" onclick="move(this)"/>
</td><td></td><td>
<input type="button" value="向右" onclick="move(this)"/>
</td></tr>
<tr><td></td><td>
<input type="button" value="向下" onclick="move(this)"/>
</td><td></td></tr>
</table>
<!--放乌龟 --->
<div id="wugui" style="position:absolute;left:100px;top:320px;">
<img src="1.png" border="1"/>
</div> <div id="cock" style="position:absolute;left:200px;top:300px;">
<img src="2.png" border="1"/>
</div>
</body>
</html>
例子:韩顺平JavaScript----JS乌龟抓小鸡游戏的更多相关文章
- jsDOM编程-乌龟抓小鸡游戏
<html> <head> <title>js乌龟抓小鸡游戏 </title> <meta http-equiv="conten ...
- 韩顺平dedecms讲解上课记录
感谢韩顺平: 如何打开php的gd库,通过php设置->php扩展-->phpdb库;打上勾就行: dede存在四张十分重要的表,channeltype,模型表最原始的发源arctype: ...
- HTML5坦克大战(韩顺平版本)
HTML5坦克大战(韩顺平版本) 2017-3-22 22:46:22 by SemiconductorKING 去年暑假学习了一下HTML5实现简单的坦克大战,觉得对JavaScript初学者来说, ...
- 韩顺平Java(持续更新中)
原创上课笔记,转载请注明出处 第一章 面向对象编程(中级部分) PDF为主 1.1 IDEA 删除当前行,ctrl+y 复制当前行,ctrl+d 补全代码,alt+/ 添加或者取消注释,ctrl+/ ...
- 【MarkMark学习笔记学习笔记】javascript/js 学习笔记
1.0, 概述.JavaScript是ECMAScript的实现之一 2.0,在HTML中使用JavaScript. 2.1 3.0,基本概念 3.1,ECMAScript中的一切(变量,函数名,操作 ...
- 韩顺平Oracle笔记
韩顺平Oracle笔记 分类: DataBase2011-09-07 10:24 3009人阅读 评论(0) 收藏 举报 oracle数据库sqljdbcsystemstring 目录(?)[-] ...
- javascript(js)小数精度丢失的解决方案
原因:js按照2进制来处理小数的加减乘除,在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配,所以会出现如下情况. javascript(js)的小数点加减乘除问题,是一个js的bug如0.3* ...
- 【转】关于URL编码/javascript/js url 编码/url的三个js编码函数
来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),e ...
- paip.java 以及JavaScript (js) 的关系以及区别
paip.java 以及JavaScript (js) 的关系以及区别 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:// ...
随机推荐
- 《Linux命令行与shell脚本编程大全》第二十六章 一些有意思的脚本
26.1 发送消息 26.1.1 功能分析 1.确定系统中都有谁 $who 给出的信息包括用户名 用户所在终端 用户登入系统的时间 2.启用消息功能 用户可以禁止别人给我发消息,所以需要先检查一下是否 ...
- Go语言教程5 if switch select
首先您需要有php或是c的基础. 否则可能看不明白 方法如下 if 表达式{ //需要注意的是 没有括号. 没错. 没有括号 比如 if 1>2 {}else{} } else { } s ...
- staticmethod、classmethod的使用
staticmethod 首先要明白两个概念 绑定方法:但凡是定义在类的内部,并且没有被任何装饰器修饰过的方法,就是绑定方法,并且有自动传值功能.类直接调用该方法时,改方法叫做类的函数属性:对象在调用 ...
- JVM内存模型及垃圾回收的研究总结
Java内存模型 总的来说就分为两个区域,堆内存(Heap)和非堆内存(No-Heap),非堆内存又称为永久代(Permanent),永久的意思其实是针对于垃圾回收器来说的,表示这部分内容不需要回收. ...
- “use strict” 严格模式使用(前端基础系列)
ECMAscript5添加一种严格模式的运行模式("use strict"),让你的js语句在更加严格的环境下进行运行: 一.主要作用: 消除版本javascript中一些不合理及 ...
- C#调用RESTful API
如今非常多的网络服务都用RESTful API来实现. 比方百度的搜索推广API介绍使用Rest原因:REST+JSON风格的API相比SOAP+XML,优点是:调用更加灵活.也更easy扩展:JSO ...
- ORA-16032: parameter LOG_ARCHIVE_DEST_3 destination string cannot be translated问题处理过程
1,现象是oracle启动报错例如以下: SQL> startup ORA-16032: parameter LOG_ARCHIVE_DEST_3 destination string cann ...
- 九种迹象表明你该用Linux了
实际上.你每天都或多或少的不知不觉地在使用Linux系统. 在webserver领域中,Linux是占主导地位的操作系统.包含你如今正在浏览的页面的后台,都是跑在Linux上的.甚至你整天不离手的An ...
- 三.RabbitMQ之异步消息队列(Work Queue)
上一篇文章简要介绍了RabbitMQ的基本知识点,并且写了一个简单的发送和接收消息的demo.这一篇文章继续介绍关于Work Queue(工作队列)方面的知识点,用于实现多个工作进程的分发式任务. 一 ...
- Android项目实战(三十六):给背景加上阴影效果
圆角背景大家应该经常用: 一个drawable资源文件 里面控制corner圆角 和solid填充色 <shape xmlns:android="http://schemas.and ...