几年前无聊小游戏之作_WEB版本打泡泡

几年前写的小东西 主要是H5画布的操作,还有个C语言基于WIN SDK开发的版本 找不到代码了 找到了再分享

<!DOCTYPE html>
<script src="game/jquery190.js"></script>
<body id="box" style="background: #000000;TEXT-ALIGN: center;margin-top: 0px;">

    <div style="margin:0 auto;">
        <canvas  id="map" width="360" height="580"></canvas>
    </div>
    <audio src="game/back.wav" loop="loop" autoplay="autoplay">
    </audio>
    <audio id ="kill" src="game/kill.wav">
    </audio>
    <script>
        // JQ CODE start
        $(function() {

            // JQ按键处理
            $("#box").keyup(function(e) {
                game.OnKeyUp(e.keyCode);
            });

        });
         // JQ CODE end

        // 实体类==============================
        var Ball = function(src, x, y, w, h) {
            this.imger = new Image();
            this.number = 0;
            this.x = 0;
            this.y = 0;
            this.w = 0;
            this.h = 0;
            // Y轴移动增量
            this.moveYSet       = 1;
            // 键值
            this.keyVal         = 0;
            // 层格编号
            this.layerNumber    = 0;
            this.MoveY = function() {
                if (this.y >= 580) {
                   this.y = 0;
                }
                this.y += this.moveYSet;
            }
        };

        var Map = function() {
            this.img = null;
            this.w = 900;
            this.h = 580;
        };
        // 层格
        var Layer = function() {
            // 设置球球状态
            this.isSetBall  = 0;
            this.x          = 0;
            this.y          = 0;
            // 球球实体
            this.ball       = null;
            this.number     = 0;

        };

        var Game = function() {
            // 球球实数组
            this.ballHandle = new Array();
            // 球球总数
            this.ballCount  = 27;
            // 地图实体
            this.maper      = new Map();

            this.ctx        = null;
            // 层格
            this.layer      = new Array();
            this.layerCount = 7;
            this.killPlayer = null;

            // A-Z键码表
            this.keyVals    = [0,65, 66,67,68,69,70,71,72,73,74,
                               75,76,77,78,79,80,81,82,83,84,85,86,
                               87,88,89,90];

            this.OnKeyUp = function(keyVal) {

                 for (i = 1; i < this.layerCount; i++)
                 {
                     if (this.layer[i].ball.keyVal==keyVal){

                         this.layer[i].isSetBall = 0;
                         /*
                             * 播放击中声音,命中率高的时候声音会不同步,考虑做到woker里
                             */
                         this.killPlayer.play();
                         return false;

                     }
                 }
            }
            // test
            this.GetIndexSechm = function(){
               var k = UtilManage.FrandomBy(1,26);
               for (i = 1; i < this.layerCount; i++){
                   if (this.layer[i].ball.number == k){
                       this.GetIndexSechm();
                   }
               }
               return k;

            }

            this.Start = function()
            {
                this.ctx.drawImage(this.maper.img, 0, 0, 900, 580);

                for (i = 1; i < this.layerCount; i++)
                {
                    if (this.layer[i].isSetBall==0)
                    {

                            this.layer[i].ball              =   this.ballHandle[UtilManage.FrandomBy(1,26)];
                            this.layer[i].ball.y            =   0;
                            this.layer[i].isSetBall         =   1;
                            this.layer[i].ball.layerNumber  =   this.layer[i].number;
                    }
                }

                for (i = 1; i < this.layerCount; i++)
                {
                    this.layer[i].ball.x = this.layer[i].x;

                    this.ctx.drawImage( this.layer[i].ball.imger,
                                        this.layer[i].ball.x,
                                        this.layer[i].ball.y,
                                        60,
                                        60);
                     this.layer[i].ball.MoveY();

                }

            }

        };

        // 工具管理器
        UtilManage = {

                    FrandomBy:function(under, over) {
                    switch (arguments.length) {
                        case 1:
                            return parseInt(Math.random() * under + 1);
                        case 2:
                            return parseInt(Math.random() * (over - under + 1) + under);
                        default:
                            return 0;
                    }
                }

        };

        // 游戏管理器
        var GameManage = {

            Run: function() {
                GameManage.InitResource();
            },
            // 初始化游戏数据
            InitResource: function() {

                game = new Game();
                // 坐标校正
                var ballXofs = 0;

                for (i = 1; i < game.layerCount; i++)
                {

                    game.layer[i]   =   new Layer();
                    game.layer[i].number++ ;

                    // 设置层格X坐标
                    game.layer[i].x =   ballXofs + 2;
                    ballXofs        += (60);

                }

                for (i = 1; i < game.ballCount; i++) {

                    game.ballHandle[i]              = new Ball();
                    game.ballHandle[i].number       = i;
                    game.ballHandle[i].keyVal       = game.keyVals[i];
                    game.ballHandle[i].imger        = new Image();
                    game.ballHandle[i].imger.src    = "game/" + i + ".png";

                }

                game.maper.img      = new Image();
                game.maper.img.src  = "game/bg.jpg";
                game.killPlayer     =  document.getElementById("kill");
                game.ctx            = (document.getElementById("map")).getContext("2d");

                setInterval("game.Start()", 50);

            }
        };

        GameManage.Run();

    </script>

</body>
</html>
时间: 2024-10-24 21:08:50

几年前无聊小游戏之作_WEB版本打泡泡的相关文章

带你使用h5开发移动端小游戏

带你使用h5开发移动端小游戏 在JY1.x版本中,你要做一个pc端的小游戏,会非常的简单,包括说,你要在低版本的浏览器IE8中,也不会出现明显的卡顿现象,你只需要关心游戏的逻辑就行了,比较适合逻辑较为简单的小游戏,在JY官网也写了很多的小游戏demo,但后来由于工作的缘因,一直没太去维护他,真是一转眼,已经是移动互联网的时代了,5年后的今天,有了重新构思JY框架的冲动,于是全新的JY2.0开始构建了.它将只适用于h5的移动端游戏开发,它将更多的去关注更复杂的js游戏,不在局限于红白机时代. 在使

一、微信小游戏开发 --- 初次在微信开发者工具里跑Egret小游戏项目

尝试下Egret的小游戏开发,学习,学习,干IT,不学习,就得落后啊... 相关教程: Egret微信小游戏教程 微信公众平台-微信小游戏教程 微信公众平台-微信小游戏接入指南 开发版本: Egret Engine 5.1.11 Egret Wing 4.1.5 微信开发者工具 1.02.1803210 开发流程: 一. 注册微信小程序账号. 二. 下载安装微信开发者工具. 三. Egret创建微信小游戏项目 一.注册微信小程序账号 前往 微信公众平台,按照小程序注册教程注册账号. 二.下载安装

【H5小游戏开发教程】如何限制微信游戏只能在微信端打开?

在这行里接触的时间多了,就会发现很多有意思的东西. 比如,很多微信小游戏会限制只能在微信端打开,有木有? 有这样的, 也有这样的, 妈蛋,不能用PC访问,这游戏就没法扒呀..... 其实涛舅舅告诉你,这两种都可以扒 而且是用PC! 但是今天,我不教你扒皮 我要教你的是,怎么让你的微信游戏也能限制PC打不开 很想学吧  准备开始! 1.第一种不提了,因为人家是设置了微信授权登录,从微信那里就拦截住了,只能用微信访问,你可能弄不了这么高级的微信授权这块,如果你真能弄,这一讲你也不用听了,因为你已经能

恶趣味小游戏 I&#39;m hungry

之前学算法的时候无聊做了个游戏放松放松,现在传到了github以免电脑坏了就永远丢失了... github地址:https://github.com/BenDanChen/IamHungry I am hungry 恶趣味小游戏,这是一个猪头接便便的故事. 感觉还行的地方是: 实现了BOSS移动的随机性,BOSS的巡游路线是无法预测的 随着游戏的进行游戏难度会逐渐加大(定时器) 死亡之后BOSS仍然会光着屁股在天上飞,这样会很有喜感... 然后有一点小彩蛋,如果得分高的话显示的界面可能会略有不同

已被多次定制!!“模拟微信答题&quot;的H5小游戏

今天推荐一款“模拟微信”答题的H5小游戏,这个也是涛舅舅这边客户定制的最多的一款游戏,曾经为现代汽车.万达.和<三妹>电视剧都作过定制! 以下是<三妹>定制的版本,推荐给大家! 扫一扫直接体验游戏 非vip会员:只接受定制,不出售源码,请联系涛舅舅报价 vip会员:可以购买源码,价格咨询涛舅舅

简单的猜数字小游戏

/** 简单的猜数字小游戏 要求如下: 用户输入想猜测数字的范围,输入1000则是0~1000之内的数字,程序就会内置一个 1 到 1000 之间的数字作为猜测的结果,由用户猜测此数字,用户每猜测一次,由系统提示猜测结果:大了.小了或者猜对了:直到用户猜对结果,则提示游戏结束.用户可以提前退出游戏,即,游戏过程中,如果用户录入数字0则游戏终止.加入新功能: 记次猜测次数功能,提示游戏开始时间,计猜测总用时功能,提示游戏结束时间 思路:1.用户输入电脑生成的数值取值范围,接收并判断是否是合理数值?

结对项目-小游戏连连看

我与我的结对同学作的是连连看小游戏,由王庆祥同学进行编码,我来检查以及运行监测,最后得结果如下图: 最后附上我的GitHub地址:https://github.com/jiaweihao/Test.git

IOS 开发入门—打砖块小游戏

忙着期末考试,读书笔记断更了~ ios 游戏处女作—demo 游戏规则 屏幕上方有四排砖块 点击屏幕开始游戏 游戏开始时,小球向上方运行 小球与砖块撞击可以撞碎砖块并反弹 小球与屏幕顶部.右侧.左侧碰撞会反弹 小球与挡板碰撞会反弹 左右移动手指可以挪动挡板 小球从屏幕下方掉出游戏结束 撞碎所有砖块游戏胜利 手机游戏的使用习惯 除非是非常出色的游戏或者游戏模式所迫,否则最好使用竖版的模式,适合用户单手操作手机,比较方便.而 iPad 则最好使用横版. 游戏类的屏幕一般要把手机上面的状态栏隐藏.不同

网页闯关小游戏闯关记录(一)ISA TEST

在知乎上找到一个关于CTF入门的回答,答主很专业的给出了建议和一些对应的训练平台,这里我试了试几个,自己半吊子水平,只能玩一些简单的,这里把自己做的过程记录下来,这几个基本都能查到通关秘籍(我是怎么知道的?没错我太渣没法通关去查秘籍了),我写下来只当是自己的备忘,大牛请无视.... ISA TEST看起来貌似是深圳职业技术学院计算机学院信息安全协会做的一个闯关小游戏,一共7关,难度较低,我这种渣渣都能做,不过最后一关还是查了writeup. 第一关: 和类似闯关游戏的套路相同,第一关都很简单,密