返回顶部
首页 > 资讯 > 前端开发 > html >怎么用html5实现打飞机小游戏
  • 424
分享到

怎么用html5实现打飞机小游戏

2024-04-02 19:04:59 424人浏览 独家记忆
摘要

本篇内容主要讲解“怎么用HTML5实现打飞机小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用html5实现打飞机小游戏”吧!代码如下:// 

本篇内容主要讲解“怎么用HTML5实现打飞机小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用html5实现打飞机小游戏”吧!

代码如下:

// 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  id="sil"></span>');
    $('#sil').html('你').hide().fadeIn(1000,function(){
        $(this).html('你屎').hide().fadeIn(1000,function(){
            $(this).html('<a href="javascript:location.reload();"  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 href="Http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</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>

到此,相信大家对“怎么用html5实现打飞机小游戏”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用html5实现打飞机小游戏

本文链接: https://lsjlt.com/news/75789.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用html5实现打飞机小游戏
    本篇内容主要讲解“怎么用html5实现打飞机小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用html5实现打飞机小游戏”吧!代码如下:// ...
    99+
    2024-04-02
  • 怎么用html5实现微信打飞机游戏
    这篇文章将为大家详细讲解有关怎么用html5实现微信打飞机游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。     html5实现微信的打飞机游戏...
    99+
    2024-04-02
  • Java怎么实现打飞机小游戏
    小编给大家分享一下Java怎么实现打飞机小游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!写在前面技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理...
    99+
    2023-05-30
    java 打飞机
  • 怎么利用pygame实现打飞机小游戏
    小编给大家分享一下怎么利用pygame实现打飞机小游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果预览最近上实训课,写了这么一个简单的小玩意。运行效果如下:...
    99+
    2023-06-15
  • 如何利用pygame实现打飞机小游戏
    效果预览 最近上实训课,写了这么一个简单的小玩意。运行效果如下:(这个是有音效的,不过这个展示不了因为这里只能上传GIF) 项目结构 游戏对屏幕的适配 由于我使用的是笔记本所以对...
    99+
    2024-04-02
  • Java实现飞机小游戏
    本文实例为大家分享了Java实现飞机小游戏的具体代码,供大家参考,具体内容如下 该小游戏使用java语言实现,使用工具idea。 共写9个类 Constant;Explode;Gam...
    99+
    2024-04-02
  • 怎么用Python实现小游戏飞机大战
    本篇内容介绍了“怎么用Python实现小游戏飞机大战”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、环境安装本文是写的游戏代码,基于Pyg...
    99+
    2023-06-25
  • 用JS实现飞机大战小游戏
    本文实例为大家分享了JS实现飞机大战小游戏的具体代码,供大家参考,具体内容如下 小的时候玩的飞机大战感觉还蛮神奇,今天自己就学着做了一个 先制作好要做好的几步以及背景样式 var...
    99+
    2024-04-02
  • javascript实现飞机大战小游戏
    本文实例为大家分享了javascript实现飞机大战游戏的具体代码,供大家参考,具体内容如下 文档结构如下 其中tool文件中只使用了随机数,audio中是存放的音乐文件,imag...
    99+
    2024-04-02
  • Vue实现飞机大战小游戏
    目录使用 Vue 开发一个简略版的飞机大战小游戏一、实现思路二、所需知识点三、实现步骤使用 Vue 开发一个简略版的飞机大战小游戏 如题,假设你为了向更多访问你博客的人展示你的技术,...
    99+
    2024-04-02
  • java实现飞机大战小游戏
    本文实例为大家分享了java实现飞机大战游戏的具体代码,供大家参考,具体内容如下 MyPanel类 package  P; import java.awt.Font; import...
    99+
    2024-04-02
  • Java如何实现飞机小游戏
    这篇文章主要讲解了“Java如何实现飞机小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现飞机小游戏”吧!1,Constant;专门放常量package com....
    99+
    2023-07-01
  • 打飞机游戏终极BOSS Android实战打飞机游戏完结篇
    本文实例为大家分享了打飞机游戏BOSS以及胜利失败页面设计的Android代码,具体内容如下 修改子弹类: public class Bullet { //子弹图片资源 ...
    99+
    2022-06-06
    Android
  • 使用canvas怎么实现一个飞机打怪兽射击小游戏
    使用canvas怎么实现一个飞机打怪兽射击小游戏?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。游戏规则要求玩家控制飞机发射子弹,消灭会移动的怪兽,如果全部消灭了则游戏成功,如果...
    99+
    2023-06-09
  • 怎么用HTML5实现String Avoider小游戏
    这篇文章主要讲解了“怎么用HTML5实现String Avoider小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用HTML5实现String A...
    99+
    2024-04-02
  • 原生JS实现飞机大战小游戏
    本文实例为大家分享了JS实现飞机大战小游戏的具体代码,供大家参考,具体内容如下 <html> <head> <title> 飞机大战 &...
    99+
    2024-04-02
  • python实现简单飞机大战小游戏
    为了熟悉Python基础语法,学习了一个经典的案例:飞机大战,最后实现效果如下: 实现步骤: ①下载64位对应python版本的pygame:pygame-1.9.6-cp38-c...
    99+
    2024-04-02
  • javascript实现简单飞机大战小游戏
    本文实例为大家分享了javascript实现飞机大战小游戏的具体代码,供大家参考,具体内容如下 效果图 html文件 <!DOCTYPE html> <html ...
    99+
    2024-04-02
  • JavaScript实现前端飞机大战小游戏
    本文实例为大家分享了JavaScript实现前端飞机大战的具体代码,供大家参考,具体内容如下 html: <!DOCTYPE html> <html>    ...
    99+
    2024-04-02
  • C语言实现飞机大战小游戏
    本文实例为大家分享了C语言实现飞机大战小游戏的具体代码,供大家参考,具体内容如下 技术原型 1、void gotoxy(int x, int y) 函数,该函数可以使光标去到(x,y...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作