pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

html5實現微信打飛機游戲_html5教程技巧

html5實現微信打飛機游戲_html5教程技巧HTML5中文學習網,是中國最大的HTML5中文門戶,為廣大HTML5愛好者提供各種HTML5資料,包括HTML5網站、HTML5資訊、HTML5應用、HTML5游戲、HTML5教程、HTML5視
點評:這篇文章主要介紹了html5實現微信打飛機游戲,需要的朋友可以參考下

html5實現微信的打飛機游戲,利用這個小游戲學習一個HTML5吧,這是開發WEB的一個方向

復制代碼
代碼如下:

// JavaScript Document
var c = document.getElementById("dotu");
var cxt = c.getContext("2d");
var img = newImg("./assets/bg_01.jpg");
var fps;
cxt.drawImage(img,0,0,480,800);

var flivverLog = 0;
var flivver1 = newImg("./assets/flivver.png");
var flivver2 = newImg("./assets/flivver2.png");
var flivver3 = newImg("./assets/flivver3.png");

// 用于記錄游戲的時間,越到后面越快
var time1 = 0;
var time2 = 80;

// 積分
var jifen = 0;

function getSudu(){
var number = parseInt(Math.random()*10);
if(number < 5 && number > 0){
return number;
}
return 1;
}
// 飛機的對象
function flivverObj(hp,ewidth,eheight,eimg,esudu){
// 隨機的X
this.x = parseInt(Math.random()*460+1);
this.y = 0;
// 血量
this.hp = hp;
// 挨打
this.hit = 0;
// 是否死亡
this.over = 0;

this.width = ewidth;
this.height = eheight;
this.img = eimg;
this.sudu = esudu;
}

// 獲取飛機
function getFlivver(type){
switch(type){
case 1:
return new flivverObj(100,50,30,flivver1,getSudu());
case 2:
return new flivverObj(500,70,90,flivver2,getSudu());
case 3:
return new flivverObj(1000,110,170,flivver3,getSudu());
}
}
function cartridge(x,y){
this.x = x;
this.y = y;
}

function gameover(){
window.clearTimeout(fps);
//$('#dotu').fadeOut();
$('.content').css('position','relative');
$('.content').append('<span style="position:absolute; top:5px; left:2px; font-size:150px; color:#cc0000; text-align:center" id="sil"></span>');
$('#sil').html('你').hide().fadeIn(1000,function(){
$(this).html('你屎').hide().fadeIn(1000,function(){
$(this).html('<a href="javascript:location.reload();" style="color:#cc0000" title="重新開始">你屎了</a>
' + jifen + ' 分').hide().fadeIn();
});
});
}

(function(cxt){
var dotu = {nums:0};
// 用于存放小飛機
var flivver = new Array();
var flivverImg = newImg("./assets/flivver.png");
// 自己
var me = {x:240,y:750};
var meImg = newImg('assets/me.png');
// 子彈
var cartridges = new Array();
var cartridgeImg = newImg('./assets/cartridge.png');

var boo1 = newImg('./assets/boo1.png');
var over = newImg('./assets/over.png');
//
dotu.update = function(){

dotu.setTimes();
// 設置背景
dotu.setBg();
// 設置小飛機
dotu.setFlivver();
// 畫自己
dotu.setMe();
// 子彈
dotu.cartridge();


cxt.font = "italic 20px 微軟雅黑";
cxt.strokeText("積分:" + jifen, 10, 30);

$('#fjs').html(flivver.length);
$('#zds').html(cartridges.length);
$('#scfj').html("1000/" + time2 + " 毫秒");
}

dotu.setTimes = function(){
time1++ ;
// 100 秒 1個檔位
if(time1 == 1000){
time1 = 0;
time2 = (time2 == 20) ? 20 : time2 - 20;
}

}


/**
* 設置移動的背景
*/
dotu.setBg = function(){
dotu.nums++;
if(dotu.nums == 800){
dotu.nums = 0;
}
// 畫布的背景
cxt.drawImage(img,0,dotu.nums,480,800);
cxt.drawImage(img,0,dotu.nums - 800,480,800);
}

dotu.setFlivver = function(){
// 生成飛機
if(dotu.nums % time2 == 0){
flivverLog++;
if(flivverLog % 6 == 0){
flivver.push(getFlivver(2));
}else if(flivverLog % 13 == 0){
flivver.push(getFlivver(3));
}else{
flivver.push(getFlivver(1));
}

}

for(a in flivver){



flivver[a].y += flivver[a].sudu;
// 如果超出屏幕將該小飛機刪除
if(flivver[a].y > 780){
flivver.splice(a, 1);
}
// 將小飛機畫到畫布上


// 小飛機死亡
if(flivver[a].over > 0){
flivver[a].over --;

if(flivver[a].over > 20){
cxt.drawImage(boo1,flivver[a].x + flivver[a].width/2 - 20 ,flivver[a].y + flivver[a].height / 2 -10,41,39);
}else if(flivver[a].over > 2){
cxt.drawImage(over,flivver[a].x + flivver[a].width/2 - 20 ,flivver[a].y + flivver[a].height / 2 -10,40,43);
}else{
flivver.splice(a, 1);
}



}else{
cxt.drawImage(flivver[a].img,flivver[a].x,flivver[a].y,flivver[a].width,flivver[a].height);
// 判斷自己是否死亡
if( me.x > (flivver[a].x - flivver[a].width + 20) && (me.x) <(flivver[a].x + flivver[a].width - 20) && (me.y) < (flivver[a].y + flivver[a].height + 20) && (me.y + 72) > (flivver[a].y - 20)){
gameover();
}

if(flivver[a].hit > 0){
cxt.drawImage(boo1,flivver[a].x + flivver[a].width/2 - 20 ,flivver[a].y + flivver[a].height / 2 -10,41,39);
//cxt.drawImage(boo1,flivver[a].x + 5 ,flivver[a].y,41,39);
flivver[a].hit--;
}
}

}
}

// 更新自己的距離
dotu.setMe = function(){
cxt.drawImage(meImg,me.x,me.y,64,72);
}

// 更新子彈方法
dotu.cartridge = function(){
if(dotu.nums % 10 == 0){
cartridges.push(new cartridge(me.x + 30,me.y));
}

for(i in cartridges){
// 飛到頂部就將OBJ刪除掉
if(cartridges[i].y < 0){
cartridges.splice(i, 1);
continue;
}


cartridges[i].y -= 20;
// 將小飛機畫到畫布上
cxt.drawImage(cartridgeImg,cartridges[i].x,cartridges[i].y,7,17);

// 子彈碰到飛機的情況
for(j in flivver){
if(flivver[j].over > 0){
continue;
}
if(cartridges[i].x > flivver[j].x && cartridges[i].x < flivver[j].x+ flivver[j].width && cartridges[i].y > flivver[j].y && cartridges[i].y -flivver[j].height < flivver[j].y){

flivver[j].hit = 10;
$('#isdz').html('打中了編號' + j);

if(flivver[j].hp > 1){
flivver[j].hp -= 80;
}else{
flivver[j].over = 40;
jifen += 50000;
}
// 子彈消失
cartridges.splice(i, 1);
break;
}
}
}
}

// 綁定鼠標事件
c.addEventListener('mousemove', function onMouseMove(evt) {
me.x = evt.layerX - $('#dotu').offset().left - 32;
me.y = evt.layerY - 36 ;
$('#sbX').html(me.x);
$('#sbY').html(me.y);
});

fps = setInterval(dotu.update, 1000/100);
}(cxt))


function newImg(src){
var obj = new Image();
obj.src = src;
return obj;
}

//setInterval(h.update, 1000/65);


復制代碼
代碼如下:

<!DOCTYPE html>
<html xmlns="<a >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>打飛機 - 多途</title>
<script type="text/javascript" src="./jquery.min.1.7.1.js"></script>
<style>
body{padding:0; margin:0; text-align:center}
.content{border:1px #000 solid; width:480px; margin:0 auto; height:800px; display:block; font-size:72px;}
.info,.blog{border:1px #000 solid; position:fixed; top:5px; right:5px; width:150px; text-align:left}
.blog{ left:10px; background:#000; text-align:center; width:100px}
.blog a{ color: #FFF; text-decoration:none; font-size:15px; }
</style>
</head>
<body>
<div class="content"><canvas id="dotu" width="480" height="800"></canvas></div>
<div class="blog"><a href="/">回到博客首頁</a></div>
<div class="info">
鼠標X:<span id="sbX"></span>
鼠標Y:<span id="sbY"></span>
小飛機數:<span id="fjs"></span>
子彈數:<span id="zds"></span>
打中:<span id="isdz"></span>
生成飛機時間:<span id="scfj"></span>

</div>
<script type="text/javascript" src="./dotu_game.js"></script>
</body>
</html>


【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

主站蜘蛛池模板: 存包柜厂家_电子存包柜_超市存包柜_超市电子存包柜_自动存包柜-洛阳中星 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 平面钻,法兰钻,三维钻-山东兴田阳光智能装备股份有限公司 | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 上海赞永| 米顿罗计量泵(科普)——韬铭机械 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 压缩空气冷冻式干燥机_吸附式干燥机_吸干机_沪盛冷干机 | 尊享蟹太太美味,大闸蟹礼卡|礼券|礼盒在线预订-蟹太太官网 | 辐射色度计-字符亮度测试-反射式膜厚仪-苏州瑞格谱光电科技有限公司 | 手持式3d激光扫描仪-便携式三维立体扫描仪-北京福禄克斯 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 餐饮加盟网_特色餐饮连锁加盟店-餐饮加盟官网 | 建筑消防设施检测系统检测箱-电梯**检测仪器箱-北京宇成伟业科技有限责任公司 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 华东师范大学在职研究生招生网_在职研究生招生联展网 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 继电器模组-IO端子台-plc连接线-省配线模组厂家-世麦德 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 苏州柯瑞德货架-仓库自动化改造解决方案 | 消泡剂-水处理消泡剂-涂料消泡剂-切削液消泡剂价格-东莞德丰消泡剂厂家 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 南京欧陆电气股份有限公司-风力发电机官网 | 有源电力滤波装置-电力有源滤波器-低压穿排电流互感器|安科瑞 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | ge超声波测厚仪-电动涂膜机-电动划格仪-上海洪富 | 国产频谱分析仪-国产网络分析仪-上海坚融实业有限公司 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 |