网页坦克大战小游戏源码,坦克页面小游戏,经典90版html坦克大战游戏代码。
演示地址http://www.bokequ.com/show/youxi/1/
电脑键盘操作说明:
玩家1:wasd上左下右,space(空格键)射击;
玩家2:方向键,enter射击。n下一关,p上一关。
html页面代码
<!DOCTYPE html> <html lang="zh" class="no-js demo-1"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="js/jquery.min.js"></script> <script src="js/Helper.js"></script> <script src="js/keyboard.js"></script> <script src="js/const.js"></script> <script src="js/level.js"></script> <script src="js/crackAnimation.js"></script> <script src="js/prop.js"></script> <script src="js/bullet.js"></script> <script src="js/tank.js"></script> <script src="js/num.js"></script> <script src="js/menu.js"></script> <script src="js/map.js"></script> <script src="js/Collision.js"></script> <script src="js/stage.js"></script> <script src="js/main.js"></script> <link rel="stylesheet" type="text/css" href="css/default.css" /> <style type="text/css"> #canvasDiv canvas{ position:absolute; } </style> </head> <body> <div class="container"> <head> <h3>操作说明:玩家1:wasd上左下右,space(空格键)射击;玩家2:方向键,enter射击。n下一关,p上一关。</h3> </head> <div class="main clearfix"> <div id="canvasDiv" > <canvas id="wallCanvas" ></canvas> <canvas id="tankCanvas" ></canvas> <canvas id="grassCanvas" ></canvas> <canvas id="overCanvas" ></canvas> <canvas id="stageCanvas" ></canvas> </div> </div> </div><!-- /container --> </body> </html>
部分js代码
var Stage = function(context,l){ this.ctx = context; this.ctx.fillStyle = "#7f7f7f"; this.drawHeigth = 15; this.level = l; this.temp = 0; this.dir = 1; //中间切换的方向,1:合上,2:展开 this.isReady = false;//标识地图是否已经画好 this.levelNum = new Num(context); this.init = function(level){ this.dir = 1; this.isReady = false; this.level = level; this.temp = 0; }; this.draw = function(){ if(this.dir == 1){ //temp = 15*15 灰色屏幕已经画完 if(this.temp == 225){ //78,14为STAGE字样在图片资源中的宽和高,194,208为canvas中的位置 this.ctx.drawImage(RESOURCE_IMAGE, POS["stageLevel"][0], POS["stageLevel"][1], 78, 14, 194, 208, 78, 14); //14为数字的宽和高,308, 208为canvas中的位置 this.levelNum.draw(this.level,308, 208); //this.ctx.drawImage(RESOURCE_IMAGE,POS["num"][0]+this.level*14,POS["num"][1],14, 14,308, 208,14, 14); //绘制地图,调用main里面的方法 initMap(); }else if(this.temp == 225 + 600){ //600即调用了600/15次,主要用来停顿 this.temp = 225; this.dir = -1; START_AUDIO.play(); }else{ this.ctx.fillRect(0, this.temp, 512, this.drawHeigth); this.ctx.fillRect(0, 448 - this.temp - this.drawHeigth , 512, this.drawHeigth); } }else{ if(this.temp >= 0){ this.ctx.clearRect(0, this.temp , 512, this.drawHeigth); this.ctx.clearRect(0, 448 - this.temp - this.drawHeigth, 512, this.drawHeigth); }else{ this.isReady = true; } } this.temp += this.drawHeigth * this.dir; }; };
评论