Wie füge ich ein weiteres Matrix-Regen-code-animation auf meiner Leinwand animation?

Ich versuche zu simulieren, die das Matrix-code-Regen mit dem canvas-element und javascript. Ich bin in der Lage, um ein element Tropfen in einer Zeit, aber nicht mehrere. Wie kann ich die drop-mehrere matrix-Regen-Tropfen. Hier ist mein code:

   <html>
    <head>
        <title>Matrix Code Rain</title>
        <style>
            *{margin:0; padding:0; }
            body{background:black;}
        </style>
    </head>
    <body>
        <canvas id="c"></canvas>
        <script type="text/javascript">
            var canvas = document.getElementById("c");
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;
            canvas.style.background = "black";
            var c = canvas.getContext("2d");
            var code = ["<html>","<p>","<b>","<strong>","<head>","<body>","<a>","<i>","<div>","<form>","<ol>","<li>","<ul>","<pre>","<nav>","<footer>","<header>","<article>","<section>","<em>","<style>","<title>","<meta>","<br>","<table>"];
            var rain = [ ];
            var max = 10;
            for(var i = 0; i < max; i++){
                var drop =  {};
                drop.code = Math.round(Math.random() * code.length);
                drop.x = Math.random() * canvas.width;
                drop.y = 0;
                drop.size = Math.random() * 40;
                drop.speed = drop.size/4;
                rain.push(drop);
            }
            var y = 0;
            c.fillStyle="lime";
            setTimeout(function(){
                 c.clearRect(0,0,canvas.width,canvas.height);
                 for(var i = 0; i < max; i++){
                    var drop = rain[i];
                    c.font = drop.size+"pt arial";
                    c.fillText(drop.code,drop.x,drop.y);
                    drop.y += drop.speed;
                    if(drop.y > canvas.height + drop.size)
                        drop.y = 0;
                 }
            },1000/60);
        </script>
    </body>
</html>
  • für mich funktioniert? Sie meinen, Sie wollen viele fallen in der gleichen Zeit?
  • Nein, ich will mehr als einen Drop zu einer Zeit. Mehrere löschen, wie auf der matrix.
  • Ich habe versucht, die Arbeit mit Simons Lösung, aber ich bin nicht gut genug, um es arbeiten. Ich aktualisierte mein code mit Simon Idee umgesetzt, aber ich hätte es auch nicht Recht.
InformationsquelleAutor zachdyer | 2012-02-13
Schreibe einen Kommentar