Pc贪吃蛇
<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title>贪吃块</title>
<script crossorigin="anonymous" integrity="sha384-mlceH9HlqLp7GMKHrj5Ara1+LvdTZVMx4S1U43/NxCvAkzIo8WJ0FE7duLel3wVo" src="https://lib.baomitu.com/jquery/3.4.1/jquery.js"></script>
</head>
<style>
body{
background: #ECAD9E;
width: 100%;
height: 100%;
}
#title{
position: absolute;
width: 98%;
height: 17%;
line-height:100%;
font-size:150%;
top: calc(0);
left: calc(1%);
text-align:center;
background: #BEEDC7;
border: 3px solid #19CAAD;
border-radius: 5px;
}
#ppp{
width: 40px;
height: 40px;
background: red;
position: absolute;
left: 100px;
top: 100px;
}
#stage{
position: absolute;
width: 98%;
height: 66%;
top: calc(17%);
left: calc(1%);
background: #BEE7E9;
border: 3px solid #F4606C;
border-radius: 5px;
}
#food{
position: absolute;
width: 10px;
height: 10px;
top:calc(50%);
left: calc(50%);
background: green;
visibility: visible;
}
</style>
<script type="text/javascript"> var setInter;
var times = 100;
var grade = 0;
var isContinue = true;
var speed = 0;//控制小方块速度
$(function() {
var stage = $("#stage");
var food =$("#food");
var snake = $("#ppp");
$(document).keyup(function(event) {//键盘监听
//var real = String.fromCharCode(event.keyCode);
clearInterval(setInter);
var t = event.keyCode;
var p = $("#ppp");
var ptxt = p.val();
p.val(ptxt + t);
speed = 150-grade*5;
if(50>=speed){//速度最快是50毫秒
speed = 50;
}
setInter = setInterval(function(){move(t);},speed);
});
function move(t){//移动
var go = "<span style='color:green;'>go</span>";
var ready = "<span style='color:red;'>ready</span>";
switch (t){
case 37:
$("#content").html(go);
moveLeft();
break;
case 38:
$("#content").html(go);
moveTop();
break;
case 39:
$("#content").html(go);
moveRight();
break;
case 40:
$("#content").html(go);
moveBottom();
break;
default:
$("#content").html(ready);
break;
}
showFood();
eatFood();
} function eatFood(){//判断是否吃到食物
var ft = parseInt(food.css("top"))+10;
var fl = parseInt(food.css("left"))+10;
var fb = parseInt(food.css("top"));
var fr = parseInt(food.css("left"));
var st = parseInt(snake.css("top"));
var sl = parseInt(snake.css("left"));
var sb = parseInt(snake.css("top"))+parseInt(snake.css("height"));
var sr = parseInt(snake.css("left"))+parseInt(snake.css("width"));
if(ft>st&&fl>sl&&fb<sb&&fr<sr){
food.css("visibility","hidden");
var co = food.css("background-color");
snake.css({"width":parseInt(snake.css("width"))+10+"px","height":parseInt(snake.css("width"))+10+"px","background-color":co});
grade++;
return;
}
} function showFood(){//生成食物
isSucceed();
if(!isContinue){
return true;
}
if(food.css("visibility")=="visible")return;
var r = Math.random()*255;
var g = Math.random()*255;
var b = Math.random()*255;
var s ="rgb("+r+","+g+","+b+")";
food.css({"top":Math.random()*490,"left":Math.random()*690,"background":s});
var ft = parseInt(food.css("top"))+10;
var fl = parseInt(food.css("left"))+10;
var fb = parseInt(food.css("top"));
var fr = parseInt(food.css("left"));
var st = parseInt(snake.css("top"));
var sl = parseInt(snake.css("left"));
var sb = parseInt(snake.css("top"))+parseInt(snake.css("height"));
var sr = parseInt(snake.css("left"))+parseInt(snake.css("width"));
if(ft>st&&fl>sl&&fb<sb&&fr<sr){
showFood();
return;
}
food.css("visibility","visible"); } function moveLeft(){//左移
var snake = $("#ppp");
var odlLeft = snake.css("left");
gameOver(0,parseInt(odlLeft));
snake.css("left",parseInt(odlLeft)-10+"px");
} function moveTop(){//上移
var snake = $("#ppp");
var odTop = snake.css("top");
gameOver(0,parseInt(odTop));
snake.css("top",parseInt(odTop)-10+"px");
} function moveRight(){//右移
var snake = $("#ppp");
var odlLeft = snake.css("left");
var max = stage.width()-snake.width();
gameOver(parseInt(odlLeft),max);
snake.css("left",parseInt(odlLeft)+10+"px");
} function moveBottom(){//下移
var snake = $("#ppp");
var odBottom = snake.css("top");
var bottomMax = stage.outerHeight()-snake.height();
gameOver(parseInt(odBottom),bottomMax);
snake.css("top",parseInt(odBottom)+10+"px");
} function gameOver(pos,max){//游戏结束
if(!isContinue){
return true;
}
if(pos >= max){
alert("游戏结束!!你的得分"+grade);
window.location.reload();
}
}
function isSucceed(){
if(!isContinue){
return true;
}
if(49<grade){
isContinue = false;
alert("恭喜你,通关了!你的得分"+grade);
window.location.reload();
}
} });
</script> <body>
<div id="title">
<h5 style="color:orangered;">消遣娱乐</h5>
<h4 id="content">ready</h4>
</div>
<div id="stage">
<div id="ppp"></div>
<div id="food"></div>
</div>
</body> </html>
Pc贪吃蛇的更多相关文章
- HTML 5 背离贪吃蛇 写成了类似于屏幕校准
中间写了改 改了写 还是没做出自己满意的效果 ,看来自己的确不是一个走前端的料子.当然h5还是学一点好一点 具体说来 就是 在canvas 的画布中 鼠标点击后画上一个圆形 然后就有随机的在画布上面出 ...
- [原创]html5游戏_贪吃蛇
代码随便写写,尚有许多不足,PC与手机端皆可运行 手机端滑屏操作,PC端方向键操作 疑问: 生成食物,与判断是否可以移动方面 有两种实现方式, 1.使用js内存,数组循环判断 2.使用dom的quer ...
- H5实现的可自定义贪吃蛇游戏
原创游戏,使用lufylegend.js开发 用canvas实现的贪吃蛇游戏,与一般的贪吃蛇游戏不同,图片经过美工设计,代码设计支持扩展和自定义. 游戏元素丰富,包括障碍物(仙人掌),金币(奖励),苹 ...
- Linux Curses编程实现贪吃蛇
curses库 简单而言,提供UNIX中多种终端 操作光标和显示字符 的接口.我们常见的vi就是使用curses实现的.现在一般都用ncurses库. Linux下curses函数库 Linux ...
- 前端笔记之JavaScript面向对象(三)初识ES6&underscore.js&EChart.js&设计模式&贪吃蛇开发
一.ES6语法 ES6中对数组新增了几个函数:map().filter().reduce() ES5新增的forEach(). 都是一些语法糖. 1.1 forEach()遍历数组 forEach() ...
- 贪吃蛇小游戏-----C语言实现
1.分析 众所周知,贪吃蛇游戏是一款经典的益智游戏,有PC和手机等多平台版本,既简单又耐玩.该游戏通过控制蛇头方向吃食物,从而使得蛇变得越来越长,蛇不能撞墙,也不能装到自己,否则游戏结束.玩过贪吃蛇的 ...
- HTML5+CSS+JS 贪吃蛇demo
我写博客的主要目的就是温习所学的知识,自己以前写的游戏当然不能放过! 这款网页版贪吃蛇是大一下册学习网页前端时老师教我们写的,由于那个时候初学网页前端,所以这款游戏是纯原生Java Script写的, ...
- Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录
一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...
- 用C++实现的贪吃蛇游戏
我是一个C++初学者,控制台实现了一个贪吃蛇游戏. 代码如下: //"贪吃蛇游戏"V1.0 //李国良于2016年12月29日编写完成 #include <iostream& ...
随机推荐
- Cocos Creator 中的动作系统那些事儿
动作系统就是可以在一定的时间内实现位移.旋转.缩放.跳动等各种动作. 需要注意的是,动作系统跟 Cocos Creator 编译器的动画系统不同,动作系统是面向程序员的API接口,而动画系统是通过编译 ...
- Java工程师学习指南第5部分:Java网络编程与NIO
本文整理了微信公众号[Java技术江湖]发表和转载过的Java网络编程相关优质文章,想看到更多Java技术文章,就赶紧关注本公众号吧. 深度解读 Tomcat 中的 NIO 模型 [Java基本功]浅 ...
- windows下编译配置libnet-1.2-rc3
1.下载winpcap(一个底层驱动,可以嗅探.过滤网卡数据包,发包).exe安装包,傻瓜一步式安装 2.下载WpdPack_4_1_2,这个是winpcap的开发者包,解压之后只需要配置相关路径. ...
- [转载]由浅入深探究mysql索引结构原理、性能分析与优化
第一部分:基础知识第二部分:MYISAM和INNODB索引结构1. 简单介绍B-tree B+ tree树 2. MyisAM索引结构 3. Annode索引结构 4. MyisAM索引与InnoDB ...
- C# 添加日志文件
StreamWriter log_sw; // 新建文件 log_sw = File.AppendText(log_str); // 写入日志文件 log_sw.WriteLine(s + " ...
- [学习笔记] Hibernate 4.3.5 下载与安装
下载 http://hibernate.org/orm/releases/4.3/ https://sourceforge.net/projects/hibernate/files/hibernate ...
- uniapp如何使用阿里iconfont
1.将iconfont中需要的图标,添加到购物车,然后添加到自己的项目.生成在线代码. 2.点击下载至本地.然后解压后复制 iconfont.css 文件到你的项目. 3.复制第一步生成的代码,替换i ...
- Windows Eclipse Scala的入门HelloWorld
[学习笔记] Windows Eclipse Scala的入门HelloWorld 有关带scala版本的eclipse4.7的下载, 你可以直接去: http://scala-ide.org/dow ...
- LC 202. Happy Number
问题描述 Write an algorithm to determine if a number is "happy". A happy number is a number de ...
- php 求两个数组的差集应该注意的事情
对于 phper 来说 array_diff 这个函数应该知道它的用途,获取两个数组的差集,我理解中的差集是这样的 但是执行下代码会发现结果并不是 <?php $a = [1,2,3,4,5]; ...