分享53戏源代码总有一个是你想要的(亲测每一个均可用)

news2024/12/27 11:57:48

收集整理不容易老铁支持我动力!

53戏源代码下载链接:https://pan.baidu.com/s/1MI_EvHNFKoUu-l8LR6MAmg?pwd=ass5 
提取码:ass5


下面是项目的名字,我放了一些图片,大家下载后可以看到。

c#版植物大战僵尸

H5纸牌接龙游戏

html5 2.5D游戏源码(demo)

html5 五子棋游戏源码

html5+js开发的中国象棋游戏源码

Html5+JS网页版捕鱼达人游戏

html5unity赛车游戏源码-scdbp

HTML5zha台球休闲游戏源码

html5全民飞机大战游戏源码

html5压扁小鸟源码

html5啤酒屋游戏

HTML5实现剪刀石头布小游戏

html5手机端投篮球小游戏源码下载

html5手游源码-任意球大师

HTML5扫雷游戏源码

html5投篮游戏源码

html5数独游戏源码-sudoku

html5植物撞僵尸小游戏源码

HTML5水果忍者游戏源码

HTML5炸弹台球休闲游戏源码

html5类似神庙逃亡的3D跑酷游戏《奔跑的兔子》源码

html5精品游戏《仓鼠酷跑》源码

html5经典塔防游戏

html5飞行射击游戏《天机》源码

HTML5黄金矿工源码

js实现的斗地主小游戏源码

JS消灭星星网页游戏源码

JS网页射击小游戏星球防御大战游戏源码

Q版jQuery扫雷小游戏源码

一款完全基于js实现的打鱼高手游戏html5源代码-

仿全面飞机大战设计游戏源码

变态方块小游戏

吃包子游戏源码

基于H5实现的手机移动端打地鼠类小游戏

基于html5的3D俄罗斯方块游戏源码

基于js实现的消灭动物小游戏源码

堆木头游戏

开源html5格斗游戏源码

微信蜘蛛侠游戏源码

打飞机游戏

捕鱼游戏源码

方言八级考试源码

有趣的3D熊出没游戏源码

有趣的仿神经猫html5圈小猫游戏源码

有趣的小心女司机手机过马路闯关小游戏源码

极少的JS写的贪吃蛇游戏(带优化版本)

植物大战僵尸

简约网页小游戏俄罗斯方块游戏源代码

经典90版HTML5坦克大战游戏源码

网页版小游戏JS飞机大战完善游戏

网页版经典小游戏植物大战僵尸

萌系可爱的点击小游戏超萌打地鼠网页版游戏源码

飞得更高游戏

驴子跳跳游戏源码

 Html5+JS网页版捕鱼达人游戏

HTML5水果忍者游戏源码

JS网页射击小游戏星球防御大战游戏源码

//Vanilla JS

//PLAY IN FULL PAGE VIEW!


window.addEventListener("DOMContentLoaded", game);

//General sprite load
var sprite = new Image();
var spriteExplosion = new Image();
sprite.src = 'img/sprite.png';

window.onload = function() {
    spriteExplosion.src = 'img/explosion.png';
};

//Game
function game() {

    //Canvas
    var canvas = document.getElementById('canvas'),
        ctx    = canvas.getContext('2d'),
        cH     = ctx.canvas.height = window.innerHeight,
        cW     = ctx.canvas.width  = window.innerWidth ;

    //Game
    var bullets    = [],
        asteroids  = [],
        explosions = [],
        destroyed  = 0,
        record     = 0,
        count      = 0,
        playing    = false,
        gameOver   = false,
        _planet    = {deg: 0};

    //Player
    var player = {
        posX   : -35,
        posY   : -(100+82),
        width  : 70,
        height : 79,
        deg    : 0
    };

    canvas.addEventListener('click', action);
    canvas.addEventListener('mousemove', action);
    window.addEventListener("resize", update);

    function update() {
        cH = ctx.canvas.height = window.innerHeight;
        cW = ctx.canvas.width  = window.innerWidth ;
    }

    function move(e) {
        player.deg = Math.atan2(e.offsetX - (cW/2), -(e.offsetY - (cH/2)));
    }

    function action(e) {
        e.preventDefault();
        if(playing) {
            var bullet = {
                x: -8,
                y: -179,
                sizeX : 2,
                sizeY : 10,
                realX : e.offsetX,
                realY : e.offsetY,
                dirX  : e.offsetX,
                dirY  : e.offsetY,
                deg   : Math.atan2(e.offsetX - (cW/2), -(e.offsetY - (cH/2))),
                destroyed: false
            };

            bullets.push(bullet);
        } else {
            var dist;
            if(gameOver) {
                dist = Math.sqrt(((e.offsetX - cW/2) * (e.offsetX - cW/2)) + ((e.offsetY - (cH/2 + 45 + 22)) * (e.offsetY - (cH/2+ 45 + 22))));
                if (dist < 27) {
                    if(e.type == 'click') {
                        gameOver   = false;
                        count      = 0;
                        bullets    = [];
                        asteroids  = [];
                        explosions = [];
                        destroyed  = 0;
                        player.deg = 0;
                        canvas.removeEventListener('contextmenu', action);
                        canvas.removeEventListener('mousemove', move);
                        canvas.style.cursor = "default";
                    } else {
                        canvas.style.cursor = "pointer";
                    }
                } else {
                    canvas.style.cursor = "default";
                }
            } else {
                dist = Math.sqrt(((e.offsetX - cW/2) * (e.offsetX - cW/2)) + ((e.offsetY - cH/2) * (e.offsetY - cH/2)));

                if (dist < 27) {
                    if(e.type == 'click') {
                        playing = true;
                        canvas.removeEventListener("mousemove", action);
                        canvas.addEventListener('contextmenu', action);
                        canvas.addEventListener('mousemove', move);
                        canvas.setAttribute("class", "playing");
                        canvas.style.cursor = "default";
                    } else {
                        canvas.style.cursor = "pointer";
                    }
                } else {
                    canvas.style.cursor = "default";
                }
            }
        }
    }

    function fire() {
        var distance;

        for(var i = 0; i < bullets.length; i++) {
            if(!bullets[i].destroyed) {
                ctx.save();
                ctx.translate(cW/2,cH/2);
                ctx.rotate(bullets[i].deg);

                ctx.drawImage(
                    sprite,
                    211,
                    100,
                    50,
                    75,
                    bullets[i].x,
                    bullets[i].y -= 20,
                    19,
                    30
                );

                ctx.restore();

                //Real coords
                bullets[i].realX = (0) - (bullets[i].y + 10) * Math.sin(bullets[i].deg);
                bullets[i].realY = (0) + (bullets[i].y + 10) * Math.cos(bullets[i].deg);

                bullets[i].realX += cW/2;
                bullets[i].realY += cH/2;

                //Collision
                for(var j = 0; j < asteroids.length; j++) {
                    if(!asteroids[j].destroyed) {
                        distance = Math.sqrt(Math.pow(
                                asteroids[j].realX - bullets[i].realX, 2) +
                            Math.pow(asteroids[j].realY - bullets[i].realY, 2)
                        );

                        if (distance < (((asteroids[j].width/asteroids[j].size) / 2) - 4) + ((19 / 2) - 4)) {
                            destroyed += 1;
                            asteroids[j].destroyed = true;
                            bullets[i].destroyed   = true;
                            explosions.push(asteroids[j]);
                        }
                    }
                }
            }
        }
    }

    function planet() {
        ctx.save();
        ctx.fillStyle   = 'white';
        ctx.shadowBlur    = 100;
        ctx.shadowOffsetX = 0;
        ctx.shadowOffsetY = 0;
        ctx.shadowColor   = "#999";

        ctx.arc(
            (cW/2),
            (cH/2),
            100,
            0,
            Math.PI * 2
        );
        ctx.fill();

        //Planet rotation
        ctx.translate(cW/2,cH/2);
        ctx.rotate((_planet.deg += 0.1) * (Math.PI / 180));
        ctx.drawImage(sprite, 0, 0, 200, 200, -100, -100, 200,200);
        ctx.restore();
    }

    function _player() {

        ctx.save();
        ctx.translate(cW/2,cH/2);

        ctx.rotate(player.deg);
        ctx.drawImage(
            sprite,
            200,
            0,
            player.width,
            player.height,
            player.posX,
            player.posY,
            player.width,
            player.height
        );

        ctx.restore();

        if(bullets.length - destroyed && playing) {
            fire();
        }
    }

    function newAsteroid() {

        var type = random(1,4),
            coordsX,
            coordsY;

        switch(type){
            case 1:
                coordsX = random(0, cW);
                coordsY = 0 - 150;
                break;
            case 2:
                coordsX = cW + 150;
                coordsY = random(0, cH);
                break;
            case 3:
                coordsX = random(0, cW);
                coordsY = cH + 150;
                break;
            case 4:
                coordsX = 0 - 150;
                coordsY = random(0, cH);
                break;
        }

        var asteroid = {
            x: 278,
            y: 0,
            state: 0,
            stateX: 0,
            width: 134,
            height: 123,
            realX: coordsX,
            realY: coordsY,
            moveY: 0,
            coordsX: coordsX,
            coordsY: coordsY,
            size: random(1, 3),
            deg: Math.atan2(coordsX  - (cW/2), -(coordsY - (cH/2))),
            destroyed: false
        };
        asteroids.push(asteroid);
    }

    function _asteroids() {
        var distance;

        for(var i = 0; i < asteroids.length; i++) {
            if (!asteroids[i].destroyed) {
                ctx.save();
                ctx.translate(asteroids[i].coordsX, asteroids[i].coordsY);
                ctx.rotate(asteroids[i].deg);

                ctx.drawImage(
                    sprite,
                    asteroids[i].x,
                    asteroids[i].y,
                    asteroids[i].width,
                    asteroids[i].height,
                    -(asteroids[i].width / asteroids[i].size) / 2,
                    asteroids[i].moveY += 1/(asteroids[i].size),
                    asteroids[i].width / asteroids[i].size,
                    asteroids[i].height / asteroids[i].size
                );

                ctx.restore();

                //Real Coords
                asteroids[i].realX = (0) - (asteroids[i].moveY + ((asteroids[i].height / asteroids[i].size)/2)) * Math.sin(asteroids[i].deg);
                asteroids[i].realY = (0) + (asteroids[i].moveY + ((asteroids[i].height / asteroids[i].size)/2)) * Math.cos(asteroids[i].deg);

                asteroids[i].realX += asteroids[i].coordsX;
                asteroids[i].realY += asteroids[i].coordsY;

                //Game over
                distance = Math.sqrt(Math.pow(asteroids[i].realX -  cW/2, 2) + Math.pow(asteroids[i].realY - cH/2, 2));
                if (distance < (((asteroids[i].width/asteroids[i].size) / 2) - 4) + 100) {
                    gameOver = true;
                    playing  = false;
                    canvas.addEventListener('mousemove', action);
                }
            } else if(!asteroids[i].extinct) {
                explosion(asteroids[i]);
            }
        }

        if(asteroids.length - destroyed < 10 + (Math.floor(destroyed/6))) {
            newAsteroid();
        }
    }

    function explosion(asteroid) {
        ctx.save();
        ctx.translate(asteroid.realX, asteroid.realY);
        ctx.rotate(asteroid.deg);

        var spriteY,
            spriteX = 256;
        if(asteroid.state == 0) {
            spriteY = 0;
            spriteX = 0;
        } else if (asteroid.state < 8) {
            spriteY = 0;
        } else if(asteroid.state < 16) {
            spriteY = 256;
        } else if(asteroid.state < 24) {
            spriteY = 512;
        } else {
            spriteY = 768;
        }

        if(asteroid.state == 8 || asteroid.state == 16 || asteroid.state == 24) {
            asteroid.stateX = 0;
        }

        ctx.drawImage(
            spriteExplosion,
            asteroid.stateX += spriteX,
            spriteY,
            256,
            256,
            - (asteroid.width / asteroid.size)/2,
            -(asteroid.height / asteroid.size)/2,
            asteroid.width / asteroid.size,
            asteroid.height / asteroid.size
        );
        asteroid.state += 1;

        if(asteroid.state == 31) {
            asteroid.extinct = true;
        }

        ctx.restore();
    }

    function start() {
        if(!gameOver) {
            //Clear
            ctx.clearRect(0, 0, cW, cH);
            ctx.beginPath();

            //Planet
            planet();

            //Player
            _player();

            if(playing) {
                _asteroids();

                ctx.font = "20px Verdana";
                ctx.fillStyle = "white";
                ctx.textBaseline = 'middle';
                ctx.textAlign = "left";
                ctx.fillText('Record: '+record+'', 20, 30);

                ctx.font = "40px Verdana";
                ctx.fillStyle = "white";
                ctx.strokeStyle = "black";
                ctx.textAlign = "center";
                ctx.textBaseline = 'middle';
                ctx.strokeText(''+destroyed+'', cW/2,cH/2);
                ctx.fillText(''+destroyed+'', cW/2,cH/2);

            } else {
                ctx.drawImage(sprite, 428, 12, 70, 70, cW/2 - 35, cH/2 - 35, 70,70);
            }
        } else if(count < 1) {
            count = 1;
            ctx.fillStyle = 'rgba(0,0,0,0.75)';
            ctx.rect(0,0, cW,cH);
            ctx.fill();

            ctx.font = "60px Verdana";
            ctx.fillStyle = "white";
            ctx.textAlign = "center";
            ctx.fillText("游戏结束",cW/2,cH/2 - 150);

            ctx.font = "20px Verdana";
            ctx.fillStyle = "white";
            ctx.textAlign = "center";
            ctx.fillText("击毁: "+ destroyed, cW/2,cH/2 + 140);

            record = destroyed > record ? destroyed : record;

            ctx.font = "20px Verdana";
            ctx.fillStyle = "white";
            ctx.textAlign = "center";
            ctx.fillText("记录: "+ record, cW/2,cH/2 + 185);

            ctx.drawImage(sprite, 500, 18, 70, 70, cW/2 - 35, cH/2 + 40, 70,70);

            canvas.removeAttribute('class');
        }
    }

    function init() {
        window.requestAnimationFrame(init);
        start();
    }

    init();

    //Utils
    function random(from, to) {
        return Math.floor(Math.random() * (to - from + 1)) + from;
    }

    if(~window.location.href.indexOf('full')) {
        var full = document.getElementsByTagName('a');
        full[0].setAttribute('style', 'display: none');
    }
}

变态方块小游戏

仿全面飞机大战设计游戏源码

吃包子游戏源码

基于H5实现的手机移动端打地鼠类小游戏

基于html5的3D俄罗斯方块游戏源码

基于js实现的消灭动物小游戏源码

堆木头游戏

微信蜘蛛侠游戏源码

打飞机游戏

捕鱼游戏源码

方言八级考试源码

有趣的仿神经猫html5圈小猫游戏源码

植物大战僵尸

 c#版植物大战僵尸

​编辑
 
基于H5实现的手机移动端打地鼠类小游戏

​编辑
 
html5全民飞机大战游戏源码

​编辑

 
js实现的斗地主小游戏源码
 ​编辑
JS消灭星星网页游戏源码

​编辑

html5 js开发的中国象棋游戏源码
 ​编辑
html5压扁小鸟源码
 ​编辑
html5植物撞僵尸小游戏源码
 ​编辑
html5 五子棋游戏源码

​编辑

基于js实现的消灭动物小游戏源码
​编辑

有趣的3D熊出没游戏源码
 ​编辑
Html5网页版小游戏JS飞机大战游戏
 ​编辑
Html5网页版经典小游戏植物大战僵尸游戏

 ​编辑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/350546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

猿人学 第十六题

使用XHR断点找到XHR发送位置向上跟栈&#xff0c;会发现在ajax中发现m已经生成&#xff0c;向上追踪代码继续向上追&#xff0c;发现m在i中出现&#xff0c;并在r.m中生成进入n[e(528)]方法&#xff0c;发现作用只是返回e(t)p_s为获取当时时间的方法 btoa为方法点击进入btoa方法…

玩机搞机------高级改良型高通工程线制作方法。

很多普通玩家对工程线的定义还停留在早期短接红绿端的操作认知上。例如这个 常规制作工程线 或者短接主板触点方式 今天给大家描述的是更高级改良型的工程线。因为前期的这种工程线对于米6或者其他同时期机型已经不起任何作用。后期机型进入高通edl模式就需要拆机手动短接主板触…

pytorch各种版本最简单安装,不用自己安装cuda cudnn

pytorch各种版本 pip 安装命令 查看官网 https://pytorch.org/get-started/previous-versions/ conda pytorch 安装 1、安装conda&#xff0c; 2、创建并并激活虚拟环境 - conda create -n pytorch_1.7 python3.7 - conda activate pytorch_1.7 3、虚拟环境中 pip 安装想要的…

升级Room引发的惨案!!

kotlin升级 在升级kotlin的时候&#xff0c;直接升级到大版本的kotlin&#xff08;比如1.7以上&#xff09;&#xff0c;直接报错&#xff0c;只是报错不知道原因。 koltin Release details 后来把koltin版本改成1.6.0&#xff0c;报如下的错&#xff0c;我们才知道gradle是需…

积水内涝监测——埋入式积水终端设备介绍

一、设备概述 埋入式积水终端是针对城市内涝推出的积水信息监测采集设备&#xff0c;采用超声波传感技术&#xff0c;对积水的深度进行精确的测量。产品能够在低温、腐蚀环境下可靠运行本产品特别适用于智慧城市中&#xff0c;对城市道路、社区低洼处的积水进行实时监测上报到…

(十)、通过云对象修改阅读量+点赞功能的实现【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1&#xff0c;通过云对象importObj修改阅读量 1.1 新建云对象 1.2 云对象中写自增自减方法 封装云对象utilsObj中的自增自减方法&#xff0c;方法名取为operation&#xff0c;传递4个参数。 // 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj // jsdoc语法提…

火山引擎数智平台的这款产品,正在帮助 APP 提升用户活跃度

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 你有没有关注过 APP 给你推送的消息&#xff1f; 出于提升用户活跃度的考虑&#xff0c;APP 会定期在应用内面向用户进行内通推送&#xff0c;推送形式既包括 APP …

查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

查看jdk安装路径&#xff0c; 在windows上实现多个java jdk的共存解决办法&#xff0c; 安装java19后终端乱码的解决 目录 一、查看jdk&#xff08;java开发工具包&#xff09;安装路径的方法 二、在windows上实现多个java jdk的共存 &#xff08;1&#xff09;、安装好多…

【数据宝应用场景】智慧工地哪些场景需要用到哪些大数据?

近几年来&#xff0c;我国施工安全管理日趋严格&#xff0c;人力成本逐渐提升&#xff0c;人力成本压力逐渐增加&#xff0c;通过大数据、物联网、云计算和智能设备等软硬件信息化技术能有效提升工地的生产效率、管理效率等&#xff0c;实现工地的数字化、精细化、智慧化管理&a…

WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第四步-模块的功能注释)

1写在前面 前面我们用WGCNA分析得到多个模块&#xff0c;其中有一些模块和我们感兴趣的表型或者临床特征是相关的。&#x1f973; 接着就是要做模块的富集分析了&#xff0c;帮助我们了解这些模块的基因都有哪些已知的功能&#xff0c;涉及到哪些通路&#xff0c;在哪些疾病中最…

贪心算法-蓝桥杯

一、贪心算法的优缺点优点&#xff1a;1.容易理解:生活常见。2.操作简单:在每一步都选局部最优。3.效率高: 复杂度常常是O(1)的。缺点&#xff1a;1.局部最优不一定是全局最优。二、例子: 最少硬币问题硬币面值1、2、5。支付13元&#xff0c;要求硬币数量最少。贪心法: (1) 5元…

工程项目管理系统源码之工程项目管理系统面临的挑战

​ ​工程项目管理系统是指从事工程项目管理的企业&#xff08;以下简称工程项目管理企业&#xff09;受业主委托&#xff0c;按照合同约定&#xff0c;代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 ​系统定义 工程项目管理企业不直接与该工程项目的总承包…

电商项目之电子账户的收单模式

文章目录1 问题背景2 前言3 什么是电子账户支付方式4 什么是收单模式5 电子账户有哪些收单模式5.1 Direct Pay模式5.2 Auth Capture模式5.3 ESCOW模式6 区别1 问题背景 笔者从事电商开发有1年多&#xff0c;对接了10几个信用卡支付方式&#xff0c;也接触了像PayPal这种电子账户…

零基础学习测试还是开发?

软件测试作为IT行业的刚需职位&#xff0c;其实是非常适合0基础的小白同学加入学习的但是具体选择测试还是开发还是要看你个人的兴趣爱好以及学习能力&#xff0c;对哪个感兴趣&#xff0c;哪个能学的会就选择哪个就可以了 平时说起程序员印象中大都是做Java、做前端、做后端&…

春招Leetcode刷题日记-D4-双指针算法-滑动窗口快慢指针

D4-双指针算法-滑动窗口&&快慢指针快慢指针算力扣141. 环形链表思路代码力扣142. 环形链表 II思路代码滑动窗口力扣76. 最小覆盖子串思路代码力扣424. 替换后的最长重复字符思路代码快慢指针算 快慢指针算法&#xff0c;多用于链表当中&#xff0c;常见的如&#xff1…

Java锁相关知识

目录 线程安全 对象头Mark 偏向锁 轻量级锁 减少锁持有时间 减小锁粒度 锁分离 锁粗化 锁消除 无锁自旋锁 线程安全 多线程访问ArrayList 多线程网站统计访问人数,是否需要精确统计&#xff1f;如果不需要&#xff0c;可以不进行加锁 public static List<Integ…

ROS2 humble安装-chatgpt版本

如果按照chatgpt版本可能不合适。请一定要参考官网。ROS (Robot Operating System) 是一个开源的机器人操作系统&#xff0c;提供了一系列软件库和工具&#xff0c;用于构建机器人应用程序。以下是在 Ubuntu 系统中安装 ROS Humble 的详细步骤和方法&#xff1a;首先&#xff0…

网络安全入门必备:渗透常用命令速查手册

系统信息 arch #显示机器的处理器架构(1) uname -m #显示机器的处理器架构(2) uname -r #显示正在使用的内核版本 dmidecode -q #显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda #罗列一个磁盘的架构特性 hdparm -tT /dev/sda #在磁盘…

CMake系列:正确使用多配置编译系统

目录 常见错误 问题现象 正确做法 if指令应该什么时候使用 活学活用 把IF指令用于多配置编译系统是很多初学者容易犯下的错误。这篇文章启示性的教你如何正确理解、使用CMake的多配置编译系统。 常见错误 以Debug和Release配置有不同的宏定义为例&#xff0c;如下所示&a…

大数据选股智能推荐系统V1.0-1

很长时间没有发布博客了&#xff0c;这段时间个人确实有点忙。另外一方面在这段时间我也没有闲着。自己研发了一套大数据选股的智能推荐系统。废话不说&#xff0c;我们先来看这套系统&#xff1a;登录页面&#xff1a;&#xff08;技术点&#xff1a;验证码的生成&#xff09;…