详细开发过程见下文
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>qqqun.21.777.12</title> <style> #mainDiv div{ width:28px;height:13px;background-color:blue;position:absolute; } </style> <script> /** *Author:撞墙的哈维; *:2177712 *转载请注明出处及详细开发过程 blog.csdn.net/uucai */ var $ = function (id) {//方便按id提取 return document.getElementById(id); }; var zdivs = new Array();//用于存储所有的砖块div window.onload=function(){ var x =150;var y = 15; var m = $("mainDiv"); for(var i=1;i<=9;i++){ for(var j=0;j<i;j++){ var di = document.createElement("div"); di.style.top = y+(i-1)*15; di.style.left= x-i*15+j*30; m.appendChild(di); var di1 = document.createElement("div"); di1.style.top = y+(i-1)*15; di1.style.left= x+300-i*15+j*30; m.appendChild(di1); zdivs[zdivs.length]=di; zdivs[zdivs.length]=di1; } } for(var i=1;i<=10;i++){ var di = document.createElement("div"); di.style.top = y+150+(i-1)*15; di.style.left= x-15; m.appendChild(di); var di1 = document.createElement("div"); di1.style.top = y+150+(i-1)*15; di1.style.left= x-15+300; m.appendChild(di1); zdivs[zdivs.length]=di; zdivs[zdivs.length]=di1; } for(var i=1;i<=9;i++){ for(var j=0;j<i*2;j++){ var di = document.createElement("div"); di.style.top = y+450-(i-1)*15; di.style.left= x+150-i*30+j*30; m.appendChild(di); zdivs[zdivs.length]=di; } } } var qx = 295;//飞球初始坐标left var qy = 580;//飞球初始坐标top var jiao = 89;//初始飞行角度 var zx = 1;//控制left位移的正负 var zy = -1;//控制top位移的正负 var rp = null;//控制游戏进程 var qx1=0; var qy1=0; function go(){ var qiu = $("qiuDiv"); qx = qx +zx*Math.cos((2*Math.PI/360)*jiao); qy = qy +zy*Math.sin((2*Math.PI/360)*jiao); if(qy>=580){ if(qx<bangleft||qx>bangleft+150){//判断是否接住 clearTimeout(rp); }else{ zy=-1; if((qx-bangleft)>(75)){ jiao = 90-(qx-bangleft+10-75)/75*90; zx = 1; }else{ jiao = 90 - (75-(qx-bangleft+10))/75*90; zx=-1; } rp = setTimeout("go()",1); } }else{if(qy<=480) for(var i=0,m = zdivs.length ;i<m;i++){ var io = checkIsP(qx,qy,zdivs[i].offsetLeft,zdivs[i].offsetTop); if(io!=0){ zdivs[i].style.display = "none"; zdivs.splice(i,1); if(io==1){ zx=1; } if(io==2){ zx=-1; } if(io==3){ zy=1; } if(io==4){ zy=-1; } break; } } if(qx>=600)zx=-1; if(qx<=0)zx=1; if(qy<=0)zy=1; qiu.style.left = qx+"px"; qiu.style.top = qy+"px"; if(zdivs.length!=0)//如果砖块未打完 rp = setTimeout("go()",1); } } function checkIsP(qx,qy,zx,zy){ var f = { x:qx, y:qy, x1:qx+10, y1:qy+10 } var z = { x:zx, y:zy, x1:zx+30, y1:zy+15 } var sx;var sy; sx = f.x>=z.x?f.x:z.x; sy = f.y>=z.y?f.y:z.y; if(sx >= f.x && sx <= f.x1 && sy >= f.y && sy <= f.y1 && sx >= z.x && sx <= z.x1 && sy >= z.y && sy <= z.y1){ return seSmall(Math.abs(f.x-z.x1),Math.abs(f.x1-z.x),Math.abs(f.y-z.y1),Math.abs(f.y1-z.y)); }else{ return 0; } } function seSmall(a,b,c,d){ if(a<b&&a<c&&a<d){ return 1; } if(b<a&&b<c&&b<d){ return 2; } if(c<a&&c<b&&c<d){ return 3; } if(d<b&&d<c&&d<a){ return 4; } } var bangleft = 225; var qiuleft = 295; var bs = 10;//棒的移动频率 var kflag = false; //键盘处理事件 function keydownEvent(event){ if(event.keyCode==32){//如果是空格 if(!kflag) go() kflag = true; } var qiu = $("qiuDiv"); var bang = $("bangDiv"); if(event.keyCode==37){//如果是左箭头 for(var i = 0;i<bs;i++){ if(bangleft-1!=0){ bangleft-=1; bang.style.left = bangleft+"px"; if(!kflag){ qiuleft-=1; qx-=1; qiu.style.left = qiuleft+"px"; } } } } if(event.keyCode==39){//如果是右箭头 for(var i = 0;i<bs;i++){ if(bangleft+1!=450){ bangleft+=1; bang.style.left = bangleft+"px"; if(!kflag){ qiuleft+=1; qx+=1; qiu.style.left = qiuleft+"px"; } } } } } </script> </head> <body style="background-color:grey;" onkeydown="keydownEvent(event)"> <div align="center"> <div style="width:600px;height:600px;background-color:#BFEFFF;border:5px groove #87CEFA;position:relative;" id="mainDiv"> <div id="qiuDiv" style="width:10px;height:10px;top:580;left:295;background-color:red;"></div> <div id="bangDiv" style="width:150px;height:10px;bottom:1;left:225;background-color:black;"></div> </div> </div> <body> </html>
Java学习交流群: 2177712
相关推荐
C打砖块源代码,适合初级C语言学习的朋友参考练习,对编写小程序有一定帮助,希望能对C语言爱好者有所帮助。
打砖块源代码代码打砖块.zip
名称:DK的打砖块(DKBlock)-附源代码 版本:1.0.0.1 运行环境:Win9X/Me/NT/2000/XP/2003+MFC42运行库 开发环境:WinXp+VC6 软件开发者:FanSin Studio 开发商网站: 作者:棼紫|DKink QQ:8566427 EMAIL:dkink@qq....
Python小游戏,打砖块的源代码。启蒙初学者
这是一款令人上瘾的打砖块游戏,充满了挑战和乐趣。在这个游戏中,你将面对超过300个砖块,不断提高的发射速度,以及各种创新的游戏机制,让你陷入其中,难以自拔。 **游戏目标:** 你的任务很简单:消除所有的...
jQuery网页版打砖块游戏代码
Unity和C#-游戏开发-打砖块+源代码工程
适合初学者,简单的打砖块游戏,VB入门必看游戏源代码
flash打砖块的源代码,使用as3.0打开运行。
Python撞球游戏源码,打砖块游戏源代码,说法不一样,其实是一款游戏了,还有人叫“乒乓球游戏”,下面就是球拍,可以左右移动接球,然后向球撞击砖块或墙壁,根据角度和力量大小,砖块消失的数量和位置不同,以前的...
unity简易打砖块代码;unity简易打砖块代码;unity简易打砖块代码
41--[打砖块游戏].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码41--[打砖块游戏].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码41--[打砖块游戏].zip源码scratch2.0 3.0编程项目源文件源码案例...
打砖块源代码-.pdf
经典小游戏打砖块的C++源代码,在DOS下全屏运行
JAVA编写的打砖块程序源代码 ; JAVA编写的俄罗斯方块程序源代码 ; JAVA编写的计算器程序源代码 ; JAVA编写的看图软件程序源代码 ; JAVA编写的螃蟹过街程序源代码 ; JAVA编写的拼图---键盘操作程序源代码 ; JAVA编写...
大三新项目c++开发超级解压的打砖块游戏源码+代码注释(仿ManyBricksBeater).zip 【项目资源介绍】 这可不是普通的打砖块游戏,这可是越打越上头的的打砖块游戏,玩起来很带劲~~还不快来试试。 复刻自 Steam 游戏 ...
这次用Python实现的是一个接球打砖块的小游戏,最核心的就是:碰撞检测的数学模型,碰撞检测原理:通过找出矩形上离圆心最近的点,然后通过判断该点与圆心的距离是否小于圆的半径,若小于则为碰撞。
纯javascript版游戏打砖块
使用vb.net完成打砖块。有三种模式。速度调整。