js实现canvas消灭新冠病毒小游戏代码

代码语言:html

所属分类:游戏

代码描述:js实现canvas消灭新冠病毒小游戏代码

代码标签: 消灭 新冠 病毒 小游戏

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<html>
<head>
    <style>
        body {
            background: #111;
            margin: 0;
            padding: 0
        }
        canvas {
            background: #000;
            display: block;
            cursor: none
        }
    </style>
   
</head>
<body style="">
    <canvas id="canvas" width="1280" height="720" style="width: 950px; height: 534px; margin-left: 0px; margin-top: 23px;"></canvas><script>
        "use strict"
        var stage = {
            w: 1280,
            h: 720
        }

        var _pexcanvas = document.getElementById("canvas");
        _pexcanvas.width = stage.w;
        _pexcanvas.height = stage.h;
        var ctx = _pexcanvas.getContext("2d");




        var pointer = {
            x: stage.w/2,
            y: stage.h/4
        }

        var scale = 1;
        var portrait = true;
        var loffset = 0;
        var toffset = 0;
        var mxpos = 0;
        var mypos = 0;


        // ------------------------------------------------------------------------------- Gamy

        var againprog = 0;

        var healthprog = 0;


        function newGame() {
            score = 0;
            health = 100;
            enemies = [];
            enemies.push(new Enemy());
            enemies.push(new Enemy());
            enemies.push(new Enemy());
            againprog = 0;
        }



        function drawHeart(x, y, w) {
            ctx.beginPath();
            ctx.arc(x-w/4, y, w/4, 0.75*Math.PI, 0);
            ctx.arc(x+w/4, y, w/4, 1*Math.PI, 2.25*Math.PI);
            ctx.lineTo(x, y+w/1.5);
            ctx.closePath();
            ctx.fill();
        }


        var Cannon = function(x, y, tx, ty) {
            this.x = x;
            this.y = y;
            this.tx = tx;
            this.ty = ty;
            this.r = 10;
        }

        var cannons = [];

        var gameover = false;

        cannons.push(new Cannon(stage.w, stage.h, stage.w/2, stage.h/2));

        var firetm = 0;
        var fireact = true;

        var health = 100;
        var score = 0;


        var arm = {
            x: stage.w,
            y: stage.h
        };
        var arm2 = {
            x: 0,
            y: stage.h
        };
        var danger = false;
        var dangera = 0;



        var Enemy = function() {
            this.x = stage.w/2;
            this.y = stage.h/2;
            this.r = 10;
            this.tx = Math.floor(Math.random()*stage.w);
            this.ty = Math.floor(Math.random()*stage.h);
            this.des = false;
            this.eyeX = 0.4;
            this.eyeY = 0.25;
            this.eyeR = 0.25;
            this.sp = 50;
            this.spl = 1.4;
            this.op = 1;
            this.danger = false;
            this.nuked = false;
        }

        var enemies = [];
        // for (var i = 0; i < 10; i++) {
        // 	enemies[i] = new Enemy();
        // }
        enemies.push(new Enemy());
        enemies.push(new Enemy());
        enemies.push(new Enemy());

        var entm = 0;
        var ga = 0;

        var steptime = 0;


        var Star = function() {
            this.a = Math.random()*Math.PI*2;
            this.v = 3+Math.random()*5;
            this.x = stage.w/2;
            this.y = stage.h/2;
            this.r = 0.2;
        }

        var Power = function() {
            this.type = Math.floor(Math.random()*2)+1;
            this.a = Math.random()*Math.PI*2;
            this.v = 3+Math.random()*5;
            this.x = stage.w/2;
            this.y = stage.h/2;
            this.r = 0.2;
            this.dis = false;
            this.op = 1;
        }


        var powers = [];
        var powertm = 0;
        var powermax = Math.random()*800+300;
        // powermax = 10;

        var stars = [];

        for (var i = 0; i < 200; i++) {
            stars[i] = new Star();
            var st = stars[i];
            var move = Math.random()*400;

            st.x += Math.sin(st.a)*move;
            st.y += Math.cos(st.a)*move;


        }

        // powers.push(new Power());



        function enginestep() {
            steptime = Date.now();
            ctx.clearRect(0, 0, stage.w, stage.h);

            ctx.fillStyle = "#ffffff";


            for (var i = 0; i < stars.length; i++) {
                var st = stars[i];

                st.x += Math.sin(st.a)*st.v;
                st.y += Math.cos(st.a)*st.v;
                st.r += st.v/200;

                ctx.beginPath();
                ctx.arc(st.x, st.y, st.r, 2*Math.PI, 0);
                ctx.fill();

                if (st.x > stage.w || st.x < 0 || st.y < 0 || st.y > stage.h) {
                    stars[i] = new Star();
                }
            }
            if (!gameover) {
                danger = false;


                powertm++;
                if (powertm > powermax) {
                    powers.push(new Power());
                    powertm = 0;
                    powermax = Math.random()*1200+600;
                    // powermax = 10;
                }




                .........完整代码请登录后点击上方下载按钮下载查看

网友评论0