最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

使用html+css+js实现弹球游戏

来源:动视网 责编:小采 时间:2020-11-03 18:17:52
文档

使用html+css+js实现弹球游戏

使用html+css+js实现弹球游戏:使用html+css+js实现弹球游戏 代码如下,复制即可使用:<!doctype html> <head> <style type="text/css"> .panel{ position: relative; z-index: 0; top:0px; left: 400px; w
推荐度:
导读使用html+css+js实现弹球游戏:使用html+css+js实现弹球游戏 代码如下,复制即可使用:<!doctype html> <head> <style type="text/css"> .panel{ position: relative; z-index: 0; top:0px; left: 400px; w
 使用html+css+js实现弹球游戏

代码如下,复制即可使用:

<!doctype html>
<head>
 <style type="text/css">
 .panel{
 position: relative;
 z-index: 0;
 top:0px;
 left: 400px;
 width: 300px;
 height: 500px;
 }
 .console{
 position: absolute;
 z-index: 1;
 top:0;
 left:0;
 width:100%;
 height: 40px;
 background-color: #bbb;
 }
 .message{
 position: absolute;
 z-index: 1;
 top:40px;
 left:0;
 width:100%;
 height: 460px;
 color: white;
 font-size: 50px;
 text-align: center;
 line-height: 460px;
 background-color: #999;
 }
 .start,.score,.pause{
 position: absolute;
 z-index: 2;
 top: 0;
 width: 100px;
 height: 100%;
 font-size: large;
 color: white;
 text-align: center;
 line-height: 40px;
 background: -webkit-linear-gradient(top,#4ca8ff,yellow);
 }
 .start{
 left: 0px;
 }
 .score{
 left:100px;
 background-color: red;
 }
 .pause{
 left:200px;
 }
 .start:after,.pause:before{
 content: "";
 position: absolute;
 z-index: 2;
 top: 0;
 width: 3px;
 height: 100%;
 background: -webkit-linear-gradient(top,#666,#999);
 }
 .start:after{
 left: 97px;
 }
 .pause:before{
 left: 0px;
 }
 .start:hover,.pause:hover{
 cursor: pointer;
 background: -webkit-linear-gradient(top,#4ca8ff,red);
 }
 .panel span{
 position: absolute;
 z-index: 0;
 top:50%;
 left: 50%;
 font-size: 50px;
 color: blue;
 }
 .ball,.secondBall{
 position:absolute;
 z-index: 2;
 border-radius:50%;
 width: 20px;
 height: 20px;
 }
 .ball{
 top: 460px;
 left:140px;
 background-color: red;
 }
 .secondBall{
 top: 40px;
 left:140px;
 background-color: red;
 }
 .plate{
 position: absolute;
 top:480px;
 left: 100px;
 z-index: 2;
 width: 100px;
 height: 20px;
 background-color: #e5e5e5;
 }
 .promte{
 margin-top: 20px;
 text-align: center;
 }
 </style>
</head>
<body>
 <div id="panel" class="panel">
 <div class="console">
 <div id="start" class="start">开始</div>
 <div id="score" class="score">0</div>
 <div id="pause" class="pause">暂停</div>
 </div>
 <div id="message" class="message"></div>
 <div id="ball" class="ball"></div>
 <div id="plate" class="plate"></div>
 </div>
 <div class="promte">提示:键盘左右箭头控制滑板</div>
 <script type="text/javascript">
 (function(){
 document.onkeydown = function(e){
 var e = e || window.event;
 if(e.keyCode == 37){
 //键盘向左键
 plateMove("left");
 }else if(e.keyCode == 39){
 //键盘向右键
 plateMove("right");
 }
 }
 })();
 var panel = document.getElementById("panel"),
 message = document.getElementById("message"),
 plate = document.getElementById("plate"),
 ball = document.getElementById("ball"),
 start = document.getElementById("start"),
 score = document.getElementById("score"),
 pause = document.getElementById("pause"),
 secondBall;
 var startGame, x = x2 = -1, y = y2 = -1, speed = 1, positionArr = [], pauseActive = false,
 //一个标志:表示难度是否还能增加
 flag = true,
 //球的起始位置
 ballX, ballY, secondBallX, secondBallY,
 //边界
 minX = 0,
 maxX = panel.offsetWidth - ball.offsetWidth,
 minY = 40;
 maxY = panel.offsetHeight - ball.offsetHeight - plate.offsetHeight;
 window.onload = function(){
 if(window.addEventListener){
 start.addEventListener("click",startClick,false);
 pause.addEventListener("click",pauseClick,false);
 }else if(window.attachEvent){
 start.attachEvent("onclik",startClick);
 pause.attachEvent("onclik",pauseClick);
 }else{
 start.onclik = startClick;
 pause.onclik = pauseClick;
 }
 }
 
 function plateMove(direction){
 if(direction == "left"){
 if(plate.offsetLeft > 0){
 plate.style.left = (plate.offsetLeft-30 < 0? 0 : plate.offsetLeft-30)+"px";
 }
 }
 if(direction == "right"){
 if(plate.offsetLeft < 200){
 plate.style.left = (plate.offsetLeft+30 > 200? 200 : plate.offsetLeft+30)+"px";
 }
 }
 }
 function startClick(){
 if(!pauseActive){
 resetGame();
 }else{
 pauseActive = !pauseActive;
 }
 startGame = setInterval(function(){
 //console.log(ballX+"======"+ballY);
 positionArr = setPosition(ballX,ballY,true);
 if(positionArr == "GAMEOVER"){
 return;
 }
 ballX = positionArr[0];
 ballY = positionArr[1];
 //设置球的位置
 ball.style.left = ballX+"px";
 ball.style.top = ballY+"px";
 if(!flag){
 positionArr = setPosition(secondBallX,secondBallY,false);
 secondBallX = positionArr[0];
 secondBallY = positionArr[1];
 secondBall.style.left = secondBallX+"px";
 secondBall.style.top = secondBallY+"px";
 }else{
 addDifficulty();
 }
 },30);
 }
 function pauseClick(){
 pauseActive = true;
 clearInterval(startGame);
 }

 function resetGame(){
 clearInterval(startGame);
 message.innerHTML="";
 score.innerHTML="0";
 ball.style.left = "140px";
 ball.style.top = "460px";
 plate.style.left = "100px";
 plate.style.top = "480px";
 ballX = ball.offsetLeft;
 ballY = ball.offsetTop;
 speed = 1;
 flag = true;
 //第二个球设置隐藏
 if(secondBall){
 secondBall.style.display="none";
 secondBall.style.left = "140px";
 secondBall.style.top = "40px";
 }
 }

 function addDifficulty(){
 if(parseInt(score.innerHTML) > 500 && parseInt(score.innerHTML) < 2000){
 speed = 1.2;
 }else if(parseInt(score.innerHTML) > 2000 && parseInt(score.innerHTML) < 5000){
 speed = 1.5;
 }else if(parseInt(score.innerHTML) > 5000){
 if(typeof secondBall != "undefined"){
 secondBall.style.display="";
 }else{
 secondBall = document.createElement('div');
 }
 
 secondBall.className = 'secondBall';
 panel.appendChild(secondBall);
 secondBallX = secondBall.offsetLeft;
 secondBallY = secondBall.offsetTop;
 flag = false;
 }
 }
 function setPosition(_x,_y,firstball){
 if(_x == minX || _x == maxX){
 //x*=-1;
 firstball? x*=-1 : x2*=-1;
 }
 if(_y == minY || _y == maxY){
 //y*=-1;
 firstball? y*=-1 : y2*=-1;
 }
 if(_y == maxY){
 //判断挡板的位置是不是在球的范围内
 if(plate.offsetLeft > _x || (plate.offsetLeft + plate.offsetWidth) < _x){
 clearInterval(startGame);
 message.innerHTML="GAMEOVER";
 return "GAMEOVER";
 }
 }
 if(firstball){
 _x+=4*x*speed;
 _y+=5*y*speed;
 }else{
 _x+=4*x2*speed;
 _y+=5*y2*speed;
 }
 
 //边界处理
 _x = _x < minX? minX : _x;
 _x = _x > maxX? maxX : _x;
 
 _y = _y < minY? minY : _y;
 _y = _y > maxY? maxY : _y;
 //设置分数
 score.innerHTML=parseInt(score.innerHTML)+10*speed;
 return [_x,_y];
 }
 </script>
</body>
</html>

如果您有更好的方法或更多的功能,可以和我们大家一起分享哦,如有错误,欢迎联系我改正,非常感谢!!!

更多编程相关内容,请关注Gxlcms编程入门栏目!

文档

使用html+css+js实现弹球游戏

使用html+css+js实现弹球游戏:使用html+css+js实现弹球游戏 代码如下,复制即可使用:<!doctype html> <head> <style type="text/css"> .panel{ position: relative; z-index: 0; top:0px; left: 400px; w
推荐度:
标签: 游戏 js html
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top