我試圖模擬矩陣代碼雨與畫布元素和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