版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用canvas + js <!DOCTYPE html><html><head><meta charset="utf-8" /><title></title></head><body><div id="" style="text-align: center;"><canvas id="" width="480" height="320"></canv
2、as></div><script type="text/javascript">var canvas = document.querySelector("canvas");var paint = canvas.getContext("2d");/画出游戏画布:黑色paint.fillStyle="black"paint.fillRect(0,0,canvas.width,canvas.height);/* * 游戏中每个元素:1,小球、2,砖块、3,挡板; */小球:先画一个小球,让小
3、球滚动起来;var ball_x=40;var ball_y=190;var ball_r=10;var ball_speed_x=5;var ball_speed_y=5;/砖块:定义砖块类,创建砖块对象;function Brick(x,y,width,height)this.x = x;this.y = y;this.width = width;this.height = height;this.isShow = true;/创建砖块var brick_x = 23;var brick_y = 20;var brick_width = 50;var brick_height = 10;v
4、ar x_off = 5;var y_off = 5;/首先,创建一个砖块/var brick = new Brick(brick_x,brick_y,brick_width,brick_height);/创建50个砖块var bricks = new Array();for(i=0;i<50;i+)/focuson: 注意if里面的条件if(brick_x + brick_width > canvas.width)brick_x = 23;brick_y += brick_height + y_off;/focuson:注意顺序,先创建一个砖块,然后再给x坐标+;var bric
5、k = new Brick(brick_x,brick_y,brick_width,brick_height);brick_x += brick_width + x_off;bricks.push(brick);/挡板:创建挡板var box_x = 10;var box_y = 280;var box_width = 80;var box_height = 15;/定义方法,让挡板跟随鼠标移动canvas.onmousemove = function(e)box_x = e.pageX - canvas.width + 200;/清除小球轨迹function clearcanvas()pai
6、nt.beginPath();paint.fillStyle="black"paint.fillRect(0,0,canvas.width,canvas.height);paint.closePath();setInterval(function()/清除小球移动痕迹clearcanvas();/绘制小球paint.fillStyle="aqua"paint.arc(ball_x,ball_y,ball_r,0,2*Math.PI,false);paint.fill();/绘制一个砖块/paint.fillStyle="aqua"/p
7、aint.fillRect(brick.x,brick.y,brick.width,brick.height);/绘制50个砖块paint.fillStyle="aqua"for(i=0;i<bricks.length;i+)/如果砖块是显示状态,才显示;if(bricksi.isShow)paint.fillRect(bricksi.x,bricksi.y,bricksi.width,bricksi.height);/* * 判断并设置砖块的显示状态 * 1,判断 if(砖.显示 && 球_x + 球_r > 砖.x && 球_
8、x - 球_r < 砖.x + 砖.width)2,再判断 if(球_y + 球_r > 砖.y && 球_y - 球_r < 砖.y + 砖.height)球_速_y = -球_速_y;砖.显示 = false; */if(bricksi.isShow &&ball_x+ball_r > bricksi.x && ball_x-ball_r<bricksi.x + bricksi.width)if(ball_y+ball_r > bricksi.y && ball_y-ball_r<br
9、icksi.y + bricksi.height)bricksi.isShow = false;ball_speed_y = - ball_speed_y;/focuson:下面代码不需要!因为不需要改变x方向/ball_speed_x = - ball_speed_x;/绘制挡板paint.fillRect(box_x,box_y,box_width,box_height);/paint.fillRect(40,300,80,15);/判断小球是否与挡板碰撞if(ball_x+ball_r > box_x && ball_x-ball_r<box_x + box_width)if(ball_y+ball_r > box_y && ball_y-ball_r<box_y + box_height)ball_speed_y = - ball_speed_y;/让小球动起来;改变其x y坐标ball_x += ball_speed_x;ball_y += ball_speed_y;/让小球碰到周边后,反弹if(ball_x>=canvas.width | ball_x<=0)ball_sp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园绘本培训
- 2026 幼儿情绪管理好奇情绪培养课件
- 2026年主管护师儿科护理学中级专业知识考试题库含答案详解(培优B卷)
- 2026年礼县信息技术能力检测试卷含完整答案详解【考点梳理】
- 2026年中级银行从业资格《银行业法律法规与综合能力》考前冲刺模拟题库含答案详解【夺分金卷】
- 铁路运输管理与安全操作手册
- 石油开采与炼化工艺手册
- 2025云南省农村信用社科技结算中心校园招聘笔试历年典型考题及考点剖析附带答案详解
- 2025云南水务投资股份有限公司西南大区招聘25人笔试历年常考点试题专练附带答案详解
- 2025云南建投第一勘察设计有限公司招聘12人笔试历年备考题库附带答案详解
- 2026年九年级数学中考模拟试卷(重庆卷)
- 郑州电力高等专科学校2026年单独招生《职业适应性测试》模拟试题及答案解析
- 2025-2026学年河北省沧州市中考物理最后冲刺浓缩卷(含答案解析)
- 体育场馆内部治安管理制度汇编
- 2026年高考数学函数与导数试题
- 大学军训军事理论课课件
- 2025年儿童摄影行业发展与创新趋势报告
- 《危险化学品安全法》解读与要点
- 2026秋招:贵州黔晟国有资产经营公司笔试题及答案
- 2026春人教版八年级英语下册重点单词-词性转换背诵默写(背诵版)
- 杭州水务考试题库及答案
评论
0/150
提交评论