仿造黑客帝国下雨效果

  前几天,学习了某站的大大写的仿造黑客帝国字符雨效果,今天拿出来分享一下。

  首先,我们使用 HTML5的canvas来写一个,废话不多说直接上代码!

<!DOCTYPE html>
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>HTML5模仿骇客帝国文字雨</title>
    </head>
    <body>
        <canvas id="q"></canvas>
        <script type="text/javascript" >
        var s = window.screen;
        var width = q.width = s.width;
        var height = q.height = s.height;
        var letters = Array(256).join(1).split(‘‘);
        var draw = function () {
          q.getContext(‘2d‘).fillStyle=‘rgba(0,0,0,.05)‘;
          q.getContext(‘2d‘).fillRect(0,0,width,height);
          q.getContext(‘2d‘).fillStyle=‘#0F0‘;
          letters.map(function(y_pos, index){
            text = String.fromCharCode(3e4+Math.random()*33);
            x_pos = index * 10;
            q.getContext(‘2d‘).fillText(text, x_pos, y_pos);
            letters[index] = (y_pos > 758 + Math.random() * 1e4) ? 0 : y_pos + 10;
          });
        };
        setInterval(draw, 33);
        </script>
</body>
</html>

  看效果,直接复制 copy  .html 就可以看到效果了,如果自己还想更改直接自己更改就可以了。

  接着,我们再来一个 HTML+ CSS + JS(jquery)的方法。

  代码:

<!DOCTYPE html>
<html>
<head>
<!-- CSS 样式 -->
<style>
* {
    margin: 0;
    padding: 0;
    box-sizing: content-box;
}
#pg {
    position: absolute;
    width: 100%;
    height: 40%;
    font-size: 0px;
    background-color: black;
    overflow: hidden;
}
#pg>div {
    display: inline-block;
    text-align: center;
    position: absolute;
    width: 1em;
    line-height: 1em;
    height: 100%;
    color: green;
    font-size: 15px;
    font-weight: bold;
}
a {
    color: #eeffee;
    font-weight: bold;
}
</style>
</head>
<body>
    <div id=pg>
        <div></div>
    </div>
    <audio>
        <source src="http://pisa.ucsd.edu/cse125/2001/cse190g1/matrix4.mp3" type="audio/mpeg">
    </audio>
</body>
</html>
<!-- JS 的jquery使用 -->
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
    $(‘audio‘)[0].play();
    // $(‘#pg>div‘).css("height", $(‘#pg‘).css("height"));
    $(‘#pg>div‘).height($(‘#pg‘).height());
    var wid = $("#pg>div").width();
    var sum = Math.ceil($(‘#pg‘).width() / wid);
    $(‘#pg‘).html(new Array(sum + 1).join("<div></div>"));
    var t_life = Array(sum + 1).join(0).split(‘‘);
    var life = [], hei = [], Yg = [], Yc = [], Y_born = [];
    $("#pg>div").map(function (index) {
        $(this).css("left", (wid * index) + ‘px‘);
    });
    var hei_page = Math.ceil($("#pg>div").height() / wid);
    var full_blank = Array(hei_page + 1).join(‘ <br>‘);
    window.setInterval(‘tick();‘, 30);
    function tick() {
        $("#pg>div").map(function (i) {
            if (+t_life[i] <= 0) {
                $(this).html(full_blank);
                hei[i] = Math.round(Math.random() * (hei_page - 2) + 2);
                Yg[i] = Yc[i] = Y_born[i] = Math.round(Math.random() * (hei_page - hei[i]));
                life[i] = Math.round(Math.random() * (hei[i] - 2) + 2);
                t_life[i] = hei[i] + life[i];
            }
            t_life[i]--, life[i]--, hei[i]--;
            var t, j;
            if (life[i] < 0) {
                t = $(this).html();
                j = Yc[i] * 5, $(this).html(t.slice(0, j) + ‘ ‘ + t.slice(j + 1));
                Yc[i]++;
            }
            if (hei[i] >= 0) {
                t = $(this).html();
                var drill = ‘<a>‘ + (Math.random() < .1 ? ‘ ‘ : String.fromCharCode(Math.round(Math.random() * 25 + ‘A‘.charCodeAt(0)))) + ‘</a>‘;
                if (Yg[i] == Y_born[i]) {
                    $(this).html(t.slice(0, Yg[i] * 5) + drill);
                } else {
                    j = (Yg[i] - 1) * 5, $(this).html(t.slice(0, j) + t.substr(j + 3, 1) + ‘<br>‘ + drill);
                }
                Yg[i]++;
            } else if (hei[i] == -1) {
                t = $(this).html();
                j = (Yg[i] - 1) * 5, $(this).html(t.slice(0, j) + t.substr(j + 3, 1));
            }
        });
    }
</script>

  还是一样 直接贴代码就可以看到效果了。

  

  其实我也在研究中,大家一起努力。

时间: 2024-10-04 21:14:49

仿造黑客帝国下雨效果的相关文章

H TML5 之 (6)下雨效果

在对HTML5进行研究之后,有了一点想法,思考出游戏其实感觉就是四个步骤 1.创建一个你需要的对象,赋予属性(一些影响方法的属性),方法(运动,叫....) 2.实例化这个对象,让它成为一个或者多个个体 3.画图方法,画出你所需要画出的对象的外形 4.调用画图方法,将实例化后的对象传进去,一个对象实例化后的外形就出来了,剩下的就是思考该在合适显示这个外形, 就达到游戏的基本思想了, <!DOCTYPE HTML> <html> <head> <title>S

canvas特效:下雨效果

canvas做出美爆了了下雨效果,本效果原创 雨点大小可自己调节,页面代码如下: <body> <canvas id="canvas" width="2000px" height="1200px"></canvas> <script> var canvas = document.getElementById("canvas"); var context = canvas.getC

6 cocos2dx粒子效果,类图关系,系统原生粒子和自己定义粒子效果,粒子编译器软件,爆炸粒子效果,烟花效果,火焰效果,流星效果,漩涡粒子效果,雪花效果,烟雾效果,太阳效果,下雨效果

?? 1 粒子 演示样例 2 类图关系 3 系统原生粒子 CCParticleSystem 全部粒子系统的父类 CCParticleSystemPoint. CCParticleSystemQuad 点粒子和方形粒子系统,都继承了CCParticleSystem的全部属性 CCParticleExplosion 爆炸粒子效果 CCParticleFireworks 烟花粒子效果 CCParticleFire 火焰粒子效果 CCParticleMetepr 流行粒子效果 CCParticleSpi

6 cocos2dx粒子效果,类图关系,系统原生粒子和自定义粒子效果,粒子编译器软件,爆炸粒子效果,烟花效果,火焰效果,流星效果,漩涡粒子效果,雪花效果,烟雾效果,太阳效果,下雨效果

 1 粒子 示例 2 类图关系 3 系统原生粒子 CCParticleSystem 所有粒子系统的父类 CCParticleSystemPoint. CCParticleSystemQuad 点粒子和方形粒子系统,都继承了CCParticleSystem的所有属性 CCParticleExplosion 爆炸粒子效果 CCParticleFireworks 烟花粒子效果 CCParticleFire 火焰粒子效果 CCParticleMetepr 流行粒子效果 CCParticleSpira

黑客帝国雨效果JS

黑客帝国雨效果JS. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{margin: 0;padding: 0;} body{overflow: hidden;} canvas{background: #111;} </style&g

android 经典下雨效果

英文原文地址:https://blog.stylingandroid.com/snowfall/ 中文翻译地址:http://www.open-open.com/lib/view/open1452263908573.html 国外大神实现效果youtube视频地址:https://www.youtube.com/watch?v=pk66ZziTfOw 中文翻译是open开发者经验库一位作者翻译,翻译的很好.在那篇文章也能看到实现的最原始的效果. 实现漫天飞舞的雪花下载地址:http://down

canvas用数组方式做出下雨效果

效果图 1.做出canvas画布和声明一个用来存储雨滴的数组 var c=document.getElementById('myCanvas'); var ctx= c.getContext('2d'); var ary=[]; 2.将雨滴的位置.大小得到 var x=Math.random()*1000;//在画布内随机生成雨滴x轴位置 var width=Math.random()*3;//随机生成雨滴宽度 var h=Math.random()*50+10;//随机生成雨滴长度 var y

html在图片上实现下雨效果

1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

下雨的页面效果

  rainyday是一款基于 html5 canvas 的模拟下雨时雨滴打在玻璃窗上效果的js插件.该雨滴效果插件的特点是使用简单,易于集成.Rainyday.js是一个使用HTML5特性的纯js库,几乎所有的现代浏览器都支持它. rainyday是一款基于 html5 canvas 的模拟下雨时雨滴打在玻璃窗上效果的js插件.该雨滴效果插件的特点是使用简单,易于集成. 使用方法 在页面中引入rainyday.js文件. <script src="http://maroslaw.gith