0

0

html5实现微信打飞机游戏_html5教程技巧

php中文网

php中文网

发布时间:2016-05-16 15:48:21

|

1962人浏览过

|

来源于php中文网

原创

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 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('');
$('#sil').html('你').hide().fadein(1000,function(){
$(this).html('你屎').hide().fadein(1000,function(){
$(this).html('你屎了
' + 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].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 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].y && cartridges[i].y -flivver[j].height
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);


MeDo
MeDo

无代码AI应用开发,百度秒哒海外版

下载
复制代码
代码如下:


http://www.w3.org/1999/xhtml">


打飞机 - 多途







鼠标X:
鼠标Y:
小飞机数:
子弹数:
打中:
生成飞机时间:





相关文章

微信app下载
微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

36

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

99

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

148

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

57

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

40

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

107

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

44

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

12

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 6.7万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 9.6万人学习

前端开发(基础+实战项目合集)
前端开发(基础+实战项目合集)

共60课时 | 3.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号