自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 资源 (2)
  • 收藏
  • 关注

原创 javaScript库相关介绍

javaScript库简介• Javascript库可以帮助我们跨越浏览器差异的鸿沟,并对复杂的浏览器功能提供更为简便的访问方式,程序库有两种形式:通用库和专用库。同用Javascript库提供了对常见浏览器功能的访问,可以作为网站或者web应用的基础。专用库则只能做特定的事,仅用于网站或者web应用的某些部分,接下来介绍这些库与其功能的概况,并提供想关网站作为参考• 1...

2019-09-15 22:36:06 361

原创 小球随机运动+拖拽效果

//获取speed和topspeedfunction getSpeed(){var code=random(4,1);//console.log(code) if(code == 1){ ...

2019-09-15 19:43:50 437

原创 贪吃蛇案例详解-函数封装

Document 贪吃蛇游戏的实现 历史最高分:0 当前分数:0 ...

2019-09-15 19:40:26 810 1

原创 call和apply和bind的区别

JS当中的call 、apply、和bind这三个方法都是js function当中自带的方法,用来改变this的指向。call()方法语法格式:fun.call(thisArg[,arg1[, arg2[, …]]])该方法可以传递一个thisArgs参数和一个参数列表,thisArgs指定了函数在运行期的调用者,也就是函数中的this对象,而参数列表会被传入调用函数中。通过 cal...

2019-09-11 11:11:15 212

原创 函数中的this

this的指向问题

2019-09-11 11:05:11 261

11even事件.md

event时间的兼容性问题 var e=eve||window.event;

2019-08-26

贪吃蛇 函数封装经典案例.docx

<!DOCTYPE html> &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;meta http-equiv="X-UA-Compatible" content="ie=edge"&gt; &lt;title&gt;Document&lt;/title&gt; &lt;style&gt; body{ background-color:silver;/*设置页面的背景颜色为银色*/ } /*游戏界面的总体样式*/ #container{ text-align: center;width:600px;margin: auto;padding:10px;background-color:white;box-shadow: 10px 10px 15px gray; } /*状态栏样式*/ #status{ padding:10px;width:400px;height:20px;margin:auto; } /*状态栏中栏目的盒子样式*/ 。box{ float:left;width:200px; } /*设置游戏按钮样式*/ button{ width:200px;height:50px;margin:10px 0; border:0; outline: none; font-size:25px; font-weight: bold; color:white; background-color:lightcoral; } /*设置鼠标悬浮时的按钮样式*/ button{ background-color: coral; } &lt;/style&gt; &lt;/head&gt; &lt;body&gt; <div id="container"> <h3>贪吃蛇游戏的实现</h3> <hr> &lt;!--状态信息栏--&gt; <div id="status"> &lt;!--历史最高--&gt; <div class="box"> 历史最高分:<span id="bestScore">0</span> </div> &lt;!--当前分数--&gt; <div class="box"> 当前分数:<span id="currentScore">0</span> </div> &lt;!--设置游戏画布--&gt; <canvas id="myCanvas" width="400" height="400" 1px solid"></canvas> &lt;!--强调重点canvas 网上大量资料,这次的贪吃蛇重点用这个方法。我也没弄的很懂,套用的--&gt; <div> <button </div> </div> </div> &lt;/body&gt; [removed] /*** 贪吃蛇游戏的整体思路 1。显示历史最高分记录,(网上查的没有做出来) 2.启动游戏 3.游戏画面刷新函数 记录小蛇的位置 绘制贪吃蛇 根据方向移动蛇头的下一个 碰撞检测,返回值0表示没有撞到障碍物 吃到食物判定 4.绘制贪吃蛇函数 5.改变蛇方向的按键监听 6.碰撞检测函数 7.绘制食物函数 ****/ //一 var游戏参数设置 //游戏界面刷新的间隔时间(数字越大蛇的速度越慢) var time=200; //蛇的身长 var t=3; //记录蛇的运行轨迹,并用数组记录每一个坐标点 var snakeMap=[]; //蛇的单元大小 var w=10; //方向代码:左37,上38,右39,下40 var direction=37; //蛇的初始坐标 var x=0; var y=0; //食物的初始化坐标 var foodX=0; var foodY=0; //当前的分 var score=0; //历史最高分记录 var bestScore=0; //画布的宽高 var width=400; var height=400; //获取画布的节点 var c=document.getElementById('myCanvas'); //创建context对象 var ctx=c.getContext("2d"); /*Canvas元素 在新的HTML标准HTML5中Canvas 元素用于在网页上绘制图形, 该元素标签强大之处在于可以直接在HTML上进行图形操作,具 有极大的应用价值。 HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一个矩形区域,您可以控制其每一像素。 canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的 方法,可以创建丰富的图形引用。 canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成: var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d");//创建对象 cxt.fillStyle="#FF0000"; cxt.fillRect(0,0,150,75); JavaScript 使用 id 来寻找 canvas 元素: var c=document.getElementById("myCanvas");然后,创建 context 对象: var cxt=c.getContext("2d");getContext("2d") 对象是内建的 HTML5 对象, 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 */ //获取历史最高分记录 showBestScore(); //开始游戏 Gamestart(); //二显示历史最高分记录 function showBestScore(){ bestScore=localStorage.getItem("bestSore");//localStorage.getItem(key):获取指定key本地存储的值 //在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储 //空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。 //如果没有记录最高分,将最高分设置为0; if(bestScore==null) bestScore=0; //将历史最高分更新到状态栏中 var best=document.getElementById('bestScore'); best[removed]=bestScore; } //三.启动游戏 function Gamestart(){ //调用drawFood()函数,在随机位置绘制第一个食物 drawFood(); //随机生成贪吃蛇的蛇头坐标 x=Math.floor(Math.random()*width/w)*w; y=Math.floor(Math.random()*height/w)*w; //随机生成蛇的前进方向 direction=37+Math.floor(Math.random()*4); //每隔time毫秒刷新一次游戏内容 setInterval("gameRefresh()",time); } //主要函数 /*四游戏画面刷新函数*/ function gameRefresh(){ //将当前坐标数据添加到贪吃蛇的运动轨迹坐标组中 snakeMap.push({ 'x':x, 'y':y }) //绘制贪吃蛇 drawSnake();//191行 //根据方向移动蛇头的下一个位置 switch(direction){ case 37://左 x-=w; break; case 38://上 y-=w; break; case 39://右 x+=w; break; case 40://下 y+=w; break; } /*五。碰撞检测,返回值0表示没有撞到障碍物*/ var code=detectCollision();//215行 // console.log(code); //如果返回值为0,表示游戏失败 if(code!=0){ //如果当前分数高于历史最高分,则更新历史最高分 if(score>bestScore) localStorage.setItem("bestScore",score); //返回值为1表示撞到墙 if(code==1){ //if(x<0 || y<0 || x>39 || y> 39){ alert&#40;"撞到了墙壁,游戏失败!当前得分:"+score&#41;; } //返回值为2表示撞到了自身 else if(code==2){ alert&#40;"撞到了蛇身,游戏失败!当前得分:"+score&#41;; } //重新加载页面 [removed].reload() } /*六.吃到食物的判定*/ if(foodX==x && foodY==y){ //吃到一次食物加10分 score+=10; //更新状态栏中当前的分数 var currentScore=document.getElementById("currentScore"); currentScore[removed]=score; //在随机位置绘制下一个食物 drawFood(); //蛇身长度加1 t++; } } /*七绘制贪吃蛇的函数*/ function drawSnake(){ //设置蛇身内部的填充颜色 ctx.fillStyle="lightblue"; //绘制最新位置的舍身矩形 ctx.fillRect(x,y,w,w); //数组只保留蛇身长度数据,如果蛇前进了则删除最旧的坐标数据 if(snakeMap.length>t){ //删除数组的第一项,即蛇的尾部的最后一个位置的坐标记录 var lastBox=snakeMap.shift(); //清楚蛇的尾部的最后一个位置,从而实现移动效果 ctx.clearRect(lastBox['x'],lastBox['y'],w,w); } } /*八改变蛇方向的按键监听*/ document.onkeydown=function(e){ // var e=eve||window.event; //根据案件更新前进方向code:左37,上38,右39,下40 if(e.keyCode==37||e.keyCode==38||e.keyCode==39||e.keyCode==40) direction=e.keyCode; } /*九碰撞检测函数*/ function detectCollision(){ //蛇头碰到四周的墙壁,游戏失败 if( x<0 || y<0 || x>width || y> height){ // console.log(0) return 1; } //蛇头碰到蛇身,游戏失败 for(var i=0;i<snakeMap.length;i++){ if(snakeMap[i].x==x&&snakeMap;[i].y==y){ return 2; } } return 0; } /*十绘制食物函数*/ function drawFood(){ foodX=Math.floor(Math.random()*width/w)*w; foodY=Math.floor(Math.random()*height/w)*w; //内部填充颜色 ctx.fillStyle='#FF0000'; //绘制矩阵 ctx.fillRect(foodX,foodY,w,w); } [removed] &lt;/html&gt;

2019-08-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除