消除QQ表情小游戏

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>

<style>
*{
    padding:0px;
    margin:0px;
    font-family:"微软雅黑";}
body{
    background:#f1f1f1;
    font-family:"微软雅黑";
    font-size:16px;
    }
#info{
    text-align:center;
    }
#box{
    width: 800px;
    height: 450px;
    border: 1px solid #066;
    background: none repeat scroll 0% 0% #FFF;
    margin: 20px auto 0px;
    position: relative;
    top: 0px;
    left: 0px;
    }
#left{
    width:130px;
    border:1px solid #066;
    position:relative;
    top:-1px;
    left:-152px;
    background:#ffc;
    padding:10px;
    }
#left p{
    font-size:16px;
    line-height:30px;
    }
#qq{
    position:absolute;
    top:0px;
    left:0px;
    width:800px;
    height:450px;

    }
</style>
<script type="text/javascript" src="float.js">
</script>
<script type="text/javascript">
window.onload = function()
{
    var obtn = document.getElementById(‘info‘).getElementsByTagName("input")[0];
    var oqq = document.getElementById(‘qq‘);
    var obox = document.getElementById(‘box‘);
    var ascore = obox.getElementsByTagName(‘p‘);
    var score1 = score2 = 0;
    var speed = 1;
    var arr = [‘img/icon1.png‘, ‘img/icon2.png‘, ‘img/icon3.png‘, ‘img/icon4.png‘, ‘img/icon5.png‘];

    obtn.onclick = function ()
    {
        this.value = ‘正在游戏...‘;
        this.style.opacity = ‘1‘;
        this.disabled = ‘disabled‘;

        fnqq();
        function fnqq()
        {
            creat();
            drop(fnqq);
        };

        function init()
        {
            obtn.value = ‘开始游戏‘;
            obtn.style.opacity = ‘1‘;
            obtn.disabled = ‘‘;
            oqq.innerHTML = ‘‘;
            speed = 1;
            score1 = score2 = 0;
        };

        function check()
        {
            if( score1 == 25 )
            {
                alert(‘恭喜!‘);
                init();
                return true;
            }
            if( score2 == 5 )
            {
                alert(‘真遗憾!‘)
                init();
                return true;
            }
        };

        function creat()
        {
            oqq.innerHTML = ‘<img style = "position: absolute; top: 0; left: ‘ + Math.round(Math.random() * 776) + ‘px" src = "‘ + arr[Math.round(Math.random() * (arr.length - 1))]+ ‘ "/>‘;
        }

        function drop(fnend)
        {
            var icon = oqq.getElementsByTagName(‘img‘)[0];
            speed += 0.8;
            domove(icon,‘top‘,speed,50,426,function()
            {
                oqq.innerHTML = ‘‘;
                score2++;
                ascore[1].innerHTML = ‘失分‘ + score2 + ‘分‘;
                shake(obox,‘top‘,function()
                {
                    if(check())
                    {
                        return;
                    }
                    fnend&&fnend();
                })
            })

            icon.onmouseover = function ()
            {
                clearInterval(icon.timer);
                icon.src = ‘img/icon6.png‘;
                shake(icon,‘left‘,function()
                {
                    oqq.innerHTML = ‘‘;
                    score1++;
                    ascore[0].innerHTML = ‘得分‘ + score1 + ‘分‘;
                    if(check())
                    {
                        return;
                    }
                    fnend&&fnend();
                })
            }
        }
    }
}
</script>
</head>

<body>
<div id="info">
    <h2>你的鼠标有多快</h2>
    <p>游戏说明:点击“开始游戏”,随机掉下QQ表情,把鼠标划上去,千万别让它掉下去!!<br>
    划掉25个算你赢;掉下5个算你输 :)</p>
    <input type="button" value="开始游戏"></input>
</div>
<div id="box">
    <div id="left">
        <p>得分:0 分</p>
        <p>失分:0 分</p>
    </div>
    <div id="qq"></div>
</div>
</body>
</html>
function getstyle(obj,attr)
{
    return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
}

function domove (obj,attr,step,frequency,target,endfn)
{
    step = parseInt(getstyle(obj,attr))<target?step:-step;
    clearInterval(obj.timer);
    obj.timer = setInterval( function ()
    {
        var speed = parseInt(getstyle(obj,attr)) + step;
        if(step>0&&speed>target||step<0&&speed<target)
        {
            speed = target;
        }
        obj.style[attr] = speed + ‘px‘;
        if( speed == target )
        {
            clearInterval(obj.timer);
            endfn&&endfn();
        }
    },frequency);
};

function opacity(obj,step,target,frequency,endfn)
{
    var currentOpacity = getstyle(obj,‘opacity‘) * 100;
    step = currentOpacity < target?step:-step;
    clearInterval(obj.opacity)
    obj.opacity = setInterval (function ()
    {
        currentOpacity = getstyle(obj,‘opacity‘) *100;
        var nextOpacity = currentOpacity + step;
        if(step>0&& nextOpacity>target || step<0&& nextOpacity < target )
        {
            nextOpacity = target;
        }
    obj.style.opacity = nextOpacity/100;
    obj.style.filter = ‘alpha(opacity:)‘ + nextOpacity +‘)‘;
    if(nextOpacity == target )
    {
        clearInterval(obj.opacity);
        endfn&&endfn();
    }
    },frequency);

};

function shake(obj,attr,endfn)
{
    if( obj.shaked ) { return;  }
    obj.shaked = true;

    var num = 0;
    var timer = null;
    var arr = [];
    var pos = parseInt(getstyle(obj,attr));

    for( var i = 20; i > 0; i-=2 )
    {
        arr.push(i,-i);
    }
    arr.push(0);

    clearInterval(obj.shake);
    obj.shake = setInterval(function ()
    {
        obj.style[attr] = pos + arr[num] +‘px‘;
        num++;
        if(num==arr.length)
        {
            clearInterval(obj.shake);
            endfn&&endfn();
            obj.shaked = false;
        }
    },50);
};
时间: 2024-12-20 11:33:57

消除QQ表情小游戏的相关文章

消除表情小游戏 【总结】

需求 需求分析: 按钮点击--> 生成一个icon--icon默认速度下降--中途被点击--触碰底边后抖动--失分加1--重头开始 └中途被点击--变成炸弹后抖动--得分加1--重头开始 实现思路: 生成icon:html阶段在游戏区域写好图片标签不赋值 js随机生成图片和图片位置并给图片赋值( 利用Math.random() ),写一个下降函数,每次回调判断是否被点击和是否已经到底,如果被点击执行抖动清除定时器return并重头开始,如果到底调用抖动函数抖动窗口并重头开始. 难点: 1.由于d

Python实现的QQ空间3366小游戏彩色砖块的辅助工具

由于女朋友每天玩这个小游戏,每天挑战我……囧,只好写了一个辅助工具帮我自动满分,最后的结果是大家一起满分……本人不是程序员,请大家指正. 主要使用了PIL模块和pymouse模块,一个做图像识别,另一个做自动点击,这个小工具只在我的电脑,Python2.5+XP下测试通过. # -*- coding: utf-8 -*- #这是一个QQ空间3366小游戏中的彩色砖块游戏的辅助工具 #他可以帮你自动计算一种正确的算法,保证你得200分! #使用时不能有任何窗口遮挡游戏界面,同时也不能做其他操作 #

js消除小游戏(极简版)`

js小游戏极简版 (1) 基础布局 <div class = "box"> <p></p> <div class="div"></div> </div>     (2)简单的基础样式 * { margin: 0; padding: 0; } div.box { width: 1000px; height: 700px; border: 1px solid #008B8B; box-sizing:

微信为什么要搞一个小游戏?

众厂关于 H5 游戏市场的争夺,自 2014 年以来,一直就没有停止过.但一直也没有尘埃落定,最终花落谁家,鹿死谁手现在还不好讲.微信推出小程序,继而推出小游戏,只是腾讯数年来在 H5 市场企业战略的一环. 微信为什么要自定义一套技术,起名为小程序?明明就是原来的 H5 技术,为什么 CSS 不叫 CSS,叫 WXSS:为什么 HTML 不叫 HTML,叫 WXML:为什么明明有 JS.TS,还要自主研发一个 WXS,并且声称"WXS 与 JS 是不同的语言,有自己的语法,并不和 JS 一致&q

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

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

利用javascript实现的小游戏-打地鼠

随着html5的兴起,那些公司对大型游戏的开发正在慢慢疏远,一.开发周期长:二.运营花费高:他们正找一些能够克服这些缺点的替代品.正好,html5的出现可以改变这些现状,在淘宝.京东等一些大型电商网站.QQ.微信等聊天软件都出现了html5的小游戏,这说明html5越来越受到大家的青睐.接下来我用javascript实现一个小型游戏---打地鼠. 打地鼠其实很好实现,主要思路有:先用表格做一个3*3的九宫格,然后放9张坑的图片-->设置一个小于等于9的随机数k,然后让k的坑的图片替换成地鼠的图片

自制Unity小游戏TankHero-2D(3)开始玩起来

自制Unity小游戏TankHero-2D(3)开始玩起来 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录金币.按钮.坦克工厂.小地图等小部件,让整个场景初步成为一个可玩的游戏. 在本篇在制作过程中,

js小游戏——看你能坚持多久

点击另存用到的图片. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" > <head

Pascal小游戏 贪吃蛇

一段未完成的Pascal贪吃蛇 说这段代码未完成其实是没有源代码格式化,FP中一行最多只有255字符宽. uses crt; const screenwidth=50; screenheight=24; wallchar='#'; snakechar='*'; ; type point=record x,y:integer; end; var snake:array [0..500] of point; map:array [0..screenwidth,0..screenheight] of