您现在的位置是:网站首页> 编程资料编程资料
html5实现微信打飞机游戏HTML5实现手机端开心消消乐微信游戏特效源码HTML5实现手机端微信游戏圣诞老人过桥特效源码html5实现的手机微信疯狂抢红包小游戏源码html5和php实现微信小游戏智力撑杆源码基于html5实现微信朋友圈接水果小游戏特效源码基于html5实现的疯狂打企鹅微信小游戏特效源码HTML5仿手机微信摇一摇游戏特效源码HTML5+Canvas实现飞机加速减速特效源码
2021-09-01 715人已围观
简介 这篇文章主要介绍了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('');
$('#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].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);
复制代码
代码如下:
相关内容
- html5 canvas fillRect坐标和大小的问题解决方法html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- html5适合移动应用开发的12大特性HTML5移动开发即学即用(双色) 王志刚 pdf扫描版[4MB]一张图看懂移动HTML5前端性能优化HTML5移动Web开发实战 PDF扫描版[30MB]HTML5移动web开发指南 pdf完整版(唐俊开) 52M新手学HTML5移动开发 面向iOS和Android平台(样章) 中文 PDF 高清版[8.8百度:用HTML5新特性开发移动App 蒋宇捷 PDF清晰版探讨HTML5移动开发的几大特性(必看)
- 用html5实现语音搜索框的方法HTML实现移动端固定悬浮半透明搜索框超酷html5+CSS3绿色发光搜索框表单提交 分享8款纯CSS3实现的搜索框功能CSS3实现的可伸缩搜索框效果(无js)CSS 漂亮搜索框美化代码css 教学实例 漂亮的搜索框基于html css实现带搜索图标的搜索框功能
- HTML5 Notification(桌面提醒)功能使用实例HTML5中的Web Notification桌面右下角通知功能的实现HTML5实现Notification API桌面通知功能 使用HTML5的Notification API制作web通知的教程html5桌面通知(Web Notifications)实例解析Html5中的桌面通知Notification的实现
- HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影HTML5播放实现rtmp流直播html5用video标签流式加载的实现基于 HTML5 WebGL 实现的医疗物流系统Html5 实现微信分享及自定义内容的流程HTML5 canvas 瀑布流文字效果的示例代码HTML5移动端手机网站开发流程HTML5梦幻之旅——炫丽的流星雨效果实现过程HTML5 离线应用之打造零请求、无流量网站的解决方法Html5之webcoekt播放JPEG图片流
- HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)HTML5 和小程序实现拍照图片旋转、压缩和上传功能H5调用相机拍照并压缩图片的实例代码HTML5 Plus 实现手机APP拍照或相册选择图片上传功能HTML5调用手机摄像头拍照的实现思路及代码html5拍照功能实现代码(htm5上传文件)使用HTML5拍照示例代码基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码HTML5拍照和摄像机功能实战详解
- html5 datalist标签使用示例(自动完成组件)HTML5 的新的表单元素(datalist/keygen/output)使用介绍Html5新标签datalist实现输入框与后台数据库数据的动态匹配
- HTML5 visibilityState属性详细介绍和使用实例HTML5中判断用户是否正在浏览页面的方法
- HTML5 Canvas+JS控制电脑或手机上的摄像头实例Html5调用手机摄像头并实现人脸识别的实现html5调用摄像头功能的实现代码HTML5混合开发二维码扫描以及调用本地摄像头HTML5调用手机摄像头拍照的实现思路及代码html5调用摄像头实例代码
- 一个不错的HTML5 Canvas多层点击事件监听实例如何在Canvas上的图形/图像绑定事件监听的实现如何在Canvas中添加事件的方法示例html5中监听canvas内部元素点击事件的三种方法详解Canvas事件绑定HTML5 Canvas的事件处理介绍HTML5 Canvas鼠标与键盘事件demo示例详解如何在Canvas中添加事件的方法