HTML5贪吃蛇源代码
显示效果例如以下:点击这里!
代码下载:点击这里!
<script>
function show(){
var date = new Date(); //日期对象
var now = "";
now = date.getFullYear()+"年"; //读英文即可了
now = now + (date.getMonth()+1)+"月"; //取月的时候取的是当前月-1假设想取当前月+1就能够了
now = now + date.getDate()+"日";
now = now + date.getHours()+"时";
now = now + date.getMinutes()+"分";
now = now + date.getSeconds()+"秒";
document.getElementById("nowDiv").innerHTML = now; //div的html是now这个字符串
setTimeout("show()",1000); //设置过1000毫秒就是1秒,调用show方法
}
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>网络人VS灰鸽子工作室</title>
<style type="text/css">
*{margin:0;padding:0;list-style-type:none;}
div{
background:-webkit-gradient(linear,0 0, 0 100%, from(yellow), to(red));/**Chrom Safari**/
background:-moz-linear-gradient(top, yellow, red); /** FireFox **/
background:-o-linear-gradient(top, yellow,red);/** Opear **/
background:-ms-linear-gradient(yellow 0%,red 100%);/** IE9 IE10 **/
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='yellow',endColorstr='red',grandientType=1); /** IE7 **/
-ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='yellow',endColorstr='red',grandientType=1); /** IE8 **/
box-shadow:3px 3px 8px yellow;border-radius:5px;
}
input{
margin: 50px 0 0 50px;cursor:pointer;width:100px;height:50px;
-webkit-transform:rotate(20deg);
-moz-transform:rotate(20deg);
transform:rotate(20deg);
-webkit-transition:0.8s;
-moz-transition:0.8s;
}
input:hover{
-webkit-transform:rotate(360deg) scale(1.3);
-moz-transform:rotate(360deg) scale(1.3);
transform:rotate(360deg) scale(1.3);
box-shadow:10px 10px 15px #111;
}
</style>
<script type="text/javascript">
var snake=[];
var oDiv=null;
var oDivSize=600;
var dir="left";
var fruit=null;
var snakeWidth=20;
var t=null;
var aInp=null;
var aSpan=null;
window.onload=function(){
oDiv=document.getElementsByTagName('div')[0];
aInp=document.getElementsByTagName('input');
aSpan=document.getElementsByTagName('span')[0];
oDiv.style.position='absolute';
oDiv.style.width=oDivSize+'px';
oDiv.style.height=oDivSize+'px';
oDiv.style.left ='350px';
oDiv.style.top ='20px';
oDiv.style.border = "15px solid rgba(35,150,60,1)";
init(500);
// t=setInterval(move,interval);
aInp[0].onclick=function(){
var first = snake[0];
var fruitLeft = parseInt(fruit.style.left);
var fruitTop = parseInt(fruit.style.top);
var firstLeft = parseInt(first.style.left);
var firstTop = parseInt(first.style.top);
if(!(firstLeft == - snakeWidth || firstLeft == oDivSize|| firstTop == - snakeWidth || firstTop == oDivSize)){
clearInterval(t);
t=setInterval(move,600);
for(var i=0;i<aInp.length;i++){
aInp[i].style.background='';
}
this.style.background="#ae5";
}
}
aInp[1].onclick=function(){
var first = snake[0];
var fruitLeft = parseInt(fruit.style.left);
var fruitTop = parseInt(fruit.style.top);
var firstLeft = parseInt(first.style.left);
var firstTop = parseInt(first.style.top);
if(!(firstLeft == - snakeWidth || firstLeft == oDivSize|| firstTop == - snakeWidth || firstTop == oDivSize)){
clearInterval(t);
t=setInterval(move,280);
for(var i=0;i<aInp.length;i++){
aInp[i].style.background='';
}
this.style.background="#f66";
}
}
aInp[2].onclick=function(){
var first = snake[0];
var fruitLeft = parseInt(fruit.style.left);
var fruitTop = parseInt(fruit.style.top);
var firstLeft = parseInt(first.style.left);
var firstTop = parseInt(first.style.top);
if(!(firstLeft == - snakeWidth || firstLeft == oDivSize|| firstTop == - snakeWidth || firstTop == oDivSize)){
clearInterval(t);
t=setInterval(move,150);
for(var i=0;i<aInp.length;i++){
aInp[i].style.background='';
}
this.style.background="lightblue"
}
}
aInp[3].onclick=function(){
var first = snake[0];
var fruitLeft = parseInt(fruit.style.left);
var fruitTop = parseInt(fruit.style.top);
var firstLeft = parseInt(first.style.left);
var firstTop = parseInt(first.style.top);
if(!(firstLeft == - snakeWidth || firstLeft == oDivSize|| firstTop == - snakeWidth || firstTop == oDivSize)){
clearInterval(t);
t=setInterval(move,100);
for(var i=0;i<aInp.length;i++){
aInp[i].style.background='';
}
this.style.background="red";
}
}
aInp[4].onclick=function(){
var first = snake[0];
var fruitLeft = parseInt(fruit.style.left);
var fruitTop = parseInt(fruit.style.top);
var firstLeft = parseInt(first.style.left);
var firstTop = parseInt(first.style.top);
if(!(firstLeft == - snakeWidth || firstLeft == oDivSize|| firstTop == - snakeWidth || firstTop == oDivSize)){
clearInterval(t);
t=setInterval(move,50);
for(var i=0;i<aInp.length;i++){
aInp[i].style.background='';
}
this.style.background="#fd5"
}
}
}
function move(){
for(var i=snake.length-1;i>0;i--){
var s = snake[i];
var s2 = snake[i-1];
s.style.left = s2.style.left ;
s.style.top = s2.style.top ;
}
var ss = snake[0];
if(dir == "left"){
ss.style.left = (parseInt(ss.style.left) - snakeWidth) + "px";
} else if(dir == "right"){
ss.style.left = (parseInt(ss.style.left) + snakeWidth) + "px";
} else if(dir == "top"){
ss.style.top = (parseInt(ss.style.top) - snakeWidth) + "px";
}else if(dir == "buttom"){
ss.style.top = (parseInt(ss.style.top) + snakeWidth) + "px";
}
check();
}
function init(appear){
var oneSnake=create(appear,snakeWidth * 2);
snake.push(oneSnake);
oDiv.appendChild(oneSnake);
var oneSnake=create(appear+snakeWidth,snakeWidth * 2);
snake.push(oneSnake);
oDiv.appendChild(oneSnake);
var oneSnake=create(appear+snakeWidth+snakeWidth,snakeWidth * 2);
snake.push(oneSnake);
oDiv.appendChild(oneSnake);
addFruit();
}
function create(left,top){
var div=document.createElement('div');
div.style.position='absolute';
div.style.left=left+'px';
div.style.top=top+'px';
div.style.width=snakeWidth+'px';
div.style.height=snakeWidth+'px';
div.style.border = "1px solid aqua";
return div;
}
function addFruit(){
var left=Math.floor(Math.random()*(oDivSize/snakeWidth))*snakeWidth;
var top=Math.floor(Math.random()*(oDivSize/snakeWidth))*snakeWidth;
for(i=0;i<snake.length;i++){
var s=snake[i];
if(left == parseInt(s.style.left)&&parseInt(top == s.style.top)){
addFruit();
return;
}
}
fruit=create(left,top);
oDiv.appendChild(fruit);
}
function onKeyupEvent(event){
var code = event.keyCode
if(code == 38 && dir != "buttom"){
dir = "top";
} if(code == 40 && dir != "top"){
dir = "buttom";
}if(code == 37 && dir != "right"){
dir = "left";
}if(code == 39 && dir != "left"){
dir = "right";
}
check();
}
function check(){
var num=0;
var first = snake[0];
var fruitLeft = parseInt(fruit.style.left);
var fruitTop = parseInt(fruit.style.top);
var firstLeft = parseInt(first.style.left);
var firstTop = parseInt(first.style.top);
if(firstLeft == - snakeWidth || firstLeft == oDivSize|| firstTop == - snakeWidth || firstTop == oDivSize){
clearInterval(t);
var M=confirm('撞到墙上了,游戏结束!
是否又一次開始?');
if(M){
document.location.reload();
}else{
return false;
}
return;//检验是否撞到墙上了
}
for(var i = 1; i < snake.length ; i++){
var s = snake[i];
if(firstLeft == parseInt(s.style.left) && firstTop == parseInt(s.style.top)){
clearInterval(t);
var N=confirm('撞到自己了,游戏结束!
是否又一次開始?')
if(N){
document.location.reload();
}else{
return false;
}
return; //检验是否撞到自身
}
}
if((dir == "buttom" && (fruitTop - firstTop == snakeWidth) && fruitLeft == firstLeft) ||
(dir == "top" && (fruitTop - firstTop == -snakeWidth) && fruitLeft == firstLeft) ||
(dir == "right" && (fruitLeft - firstLeft == snakeWidth) && fruitTop == firstTop)||
(dir == "left" && (fruitLeft - firstLeft == -snakeWidth) && fruitTop == firstTop)){
var temp = [];
temp.push(fruit);
snake = temp.concat(snake);//吃了
num++;
addFruit();
}
}
</script>
</head>
<style type="text/css">
img{
position:absolute;
left:1100px;
top:100px;
}
</style>
<body onkeyup="onKeyupEvent(event)" style="background:rgba(50,50,50,1)">
<font color="pink" size="5" style='position:absolute;left:1000;top:300'>利用键盘上的↑ ↓ ← → 来控制方向 </font>
<a href="../index.html"><img border="0" src="./image/4.jpg" alt="主页面" title="返回主页面"></a>
<div></div>
<ul>
<li><h1><input type="button" value="開始"></h1></li>
<li><input type="button" value="简单"></li>
<li><input type="button" value="0基础"></li>
<li><input type="button" value="一般"></li>
<li><input type="button" value="困难"></li>
</ul>
<span style="font-size:25px;color:#ae5;font-family:微软雅黑;margin-left:30px;position:absolute;left:10px;bottom:40px;";>请选择难度開始游戏<br>游戏过程中能够随时难度</span>
<br><br><br><br><br><br><br><br><br>
<p></p>
<h2 align=right><font color="blue">
<body onload="show()"> <!-- 网页载入时调用一次 以后就自己主动调用了-->
<font size="5" color="pink"> Design By:</font><a href="http://blog.csdn.net/qq_21792169/article/category/5907695" target="_blank"><font size="5" color="pink">网络人VS灰鸽子工作室</font></a>
<div id="nowDiv"></div> </body>
</font></h2>
</body>
</html>
HTML5贪吃蛇源代码的更多相关文章
- C/C++编程笔记:C语言贪吃蛇源代码控制台(二),分数和食物!
接上文<C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!>如果你在学习C语言开发贪吃蛇的话,零基础建议从上一篇开始哦!接下来正式开始吧! 三.蛇的运动 上次我已经教大家画 ...
- WebGL实现HTML5贪吃蛇3D游戏
js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...
- [置顶] 63行代码完美实现html5 贪吃蛇游戏
以前也很少关注html5,感觉选择html已经慢慢成为趋势,想了解下.就找了个游戏学习了,写完这个游戏感觉html5和js结合很紧密,如果js不是特别好.估计需要先补习下js,这个只是个人的建议,不一 ...
- 使用TypeScript实现简单的HTML5贪吃蛇游戏
TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构师,已 ...
- C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!
前几天有个同学加我QQ私聊我说他们老师布置了一个贪吃蛇,他不知道怎么写所以来找我求解,我给他简单讲解了思路和一些难点之后他也能够自己独立将项目完成了!考虑到更多同学可能有贪吃蛇上的问题,今天有时间就来 ...
- 简易html5贪吃蛇
1. [图片] E6~0%QPA46ER843UQJ$0Z`H.jpg 2. [文件] snake.html <!DOCTYPE html><html><head> ...
- 【转】Android贪吃蛇源代码
/*TileView:tile有瓦片的意思,用一个个tile拼接起来的就是地图.TileView就是用来呈现地图的类*/ public class TileView extends View { /* ...
- WebGL实现HTML5的3D贪吃蛇游戏
js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...
- 100行JS实现HTML5的3D贪吃蛇游戏
js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...
随机推荐
- Metasploit的三种启动方式
不多说,直接上干货! 注意:博主我用的是Kali linux 2016.2(Rolling). msfcli 的启动 root@kali:~# msfcli -h bash: msfcli: 未找到 ...
- SparkCore基础(一)
* SparkCore基础(一) 学习Spark,首先要熟悉Scala,当然你说你会Python或者Java能不能玩Spark?能!但是不推荐,首推Scala,因为Scala非常便捷,而且Scala有 ...
- WebView的坑[持续更新]
返回错误的 innerHeight,如 240(WebView returns bad window.innerHeight) http://stackoverflow.com/questions/1 ...
- JavaScript,ES5和ES6的区别
什么是JavaScript JavaScript一种动态类型.弱类型.基于原型的客户端脚本语言,用来给HTML网页增加动态功能.(好吧,概念什么最讨厌了) 动态: 在运行时确定数据类型.变量使用之前不 ...
- 20180929 北京大学 人工智能实践:Tensorflow笔记02
https://www.bilibili.com/video/av22530538/?p=16 https://www.bilibili.com/video/av22530538/?p=14 (完)
- ActiveMQ学习总结(8)——消息队列设计精要
消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一. 当今市面上有很多主流的消息中间件,如老牌的Activ ...
- SpringMVC拓展
### 原生SpringMVC有如下缺陷 参数的JSON反序列化只支持@RequestBody注解,这意味着不能在controller方法中写多个参数,如下代码是不对的 public Map test ...
- 浅谈Python Web的五大框架
说到Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界.各种micro-framework.framework不可胜数. 尽管还有一大脚本语言PHP也有 ...
- 利用socket模拟http的混合表单上传(在一个请求中提交表单并上传多个文件)
在非常多企业级应用中,我们都没法直接通过开发语言sdk包封装的http工具来模拟http复合表单(multipart/form-data),特别是在跨语言跨平台的编程过程中.事实上实现方 ...
- openssl之BIO系列之6---BIO的IO操作函数
BIO的IO操作函数 ---依据openssl doc/crypto/bio/bio_read.pod翻译和自己的理解写成 (作者:DragonKing Mail:wzhah ...