JavaScriptで雪を降らせる
2023/08/25 (金) - 00:00 JavaScript
最近暑くて雪が恋しいので、JavaScriptでしんしんと降る雪を作ってみました。
HTMLコードは以下の通り。
<canvas id="snowField" width="640" height="640"></canvas>
JavaScriptのコードは以下の通り。
const canvas = document.getElementById('snowField');
const ctx = canvas.getContext('2d');
let snow = [];
let maxSnow = 100; //1度に降る雪の数
function createSnow() {
snow.push({
x: Math.floor(Math.random() * canvas.width),
y: Math.floor(Math.random() * canvas.height),
size: Math.random() * 2 + 1,
speed: Math.random() * 0.5 + 0.2,
opacity: Math.random()
});
}
function drawSnow() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
for (let i = 0; i < snow.length; i++) {
let snowflake = snow[i];
ctx.beginPath();
ctx.arc(snowflake.x, snowflake.y, snowflake.size, 0, 2 * Math.PI);
ctx.fillStyle = `rgba(255, 255, 255, ${snowflake.opacity})`;
ctx.fill();
snowflake.y += snowflake.speed;
if (snowflake.y > canvas.height) {
snowflake.y = 0;
}
}
requestAnimationFrame(drawSnow);
}
for (let i = 0; i < maxSnow; i++) {
createSnow();
}
drawSnow();
気分だけは涼しくなりました。いったい暑さはいつまで続くのでしょうか…。
おしまい♥
おすすめ記事
- JavaScriptでCSVファイルを読み込み、表として表示する
- Reactでボタン<button>の有効・無効(disabled属性)を切り替える
- 戻るボタンで広告が表示されるギミックを簡易的に実装する
- OpenAI API(DALL·E 3)とNext.js(React)で画像生成プログラム
- 電話番号リンク(tel:〜)をスマホではクリッカブルにしパソコンではリンク無効にする
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/js_snow/trackback/