我试图模拟矩阵代码雨与画布元素和JavaScript。我能够一次减少一个元素,但不能多个。我如何下降多个矩阵雨滴。这里是我的代码:如何添加另一个矩阵雨代码动画到我的画布动画中?
<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>
适合我吗?你的意思是你想让很多东西在同一时间下降? – Alex 2012-02-13 10:00:48
@Alex不,我希望每次都有一个以上的人下降。在矩阵上多次下降。 – zachdyer 2012-02-13 19:45:38
我尝试过使用Simons解决方案,但我不够好,无法使其工作。我更新了我的代码与西蒙的想法实施,但我没有做对。 – zachdyer 2012-02-14 08:57:01