罗斯:修订间差异
来自Age Of History 2 Chinese Wiki
无编辑摘要 |
无编辑摘要 |
||
第18行: | 第18行: | ||
== 外部链接和注释 == | == 外部链接和注释 == | ||
{{沔阳小镇}} | {{沔阳小镇}} | ||
<!DOCTYPE html> | |||
<html lang="en"> | |||
<head> | |||
<meta charset="UTF-8"> | |||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||
<title>电闪雷鸣效果</title> | |||
<style> | |||
body { | |||
margin: 0; | |||
overflow: hidden; | |||
background-color: #000; | |||
} | |||
canvas { | |||
display: block; | |||
} | |||
</style> | |||
</head> | |||
<body> | |||
<canvas id="stormCanvas"></canvas> | |||
<script> | |||
document.addEventListener('DOMContentLoaded', function() { | |||
const canvas = document.getElementById('stormCanvas'); | |||
const ctx = canvas.getContext('2d'); | |||
// 设置canvas大小为窗口大小 | |||
function resizeCanvas() { | |||
canvas.width = window.innerWidth; | |||
canvas.height = window.innerHeight; | |||
} | |||
window.addEventListener('resize', resizeCanvas); | |||
resizeCanvas(); | |||
// 雨滴数组 | |||
const raindrops = []; | |||
const raindropCount = 500; | |||
// 闪电参数 | |||
let flashAlpha = 0; | |||
let flashTimeout = null; | |||
let nextFlashTime = 0; | |||
// 雨滴类 | |||
class Raindrop { | |||
constructor() { | |||
this.reset(); | |||
this.z = Math.random() * 0.5 + 0.5; // 深度 (0.5-1) | |||
} | |||
reset() { | |||
this.x = Math.random() * canvas.width; | |||
this.y = Math.random() * -canvas.height; | |||
this.speed = Math.random() * 10 + 10; | |||
this.length = Math.random() * 20 + 10; | |||
this.opacity = Math.random() * 0.5 + 0.3; | |||
} | |||
update() { | |||
this.y += this.speed * this.z; | |||
// 如果雨滴落出屏幕,重置到顶部 | |||
if (this.y > canvas.height) { | |||
this.reset(); | |||
this.y = Math.random() * -50; | |||
} | |||
} | |||
draw() { | |||
ctx.beginPath(); | |||
ctx.moveTo(this.x, this.y); | |||
ctx.lineTo(this.x, this.y + this.length * this.z); | |||
ctx.strokeStyle = `rgba(150, 200, 255, ${this.opacity})`; | |||
ctx.lineWidth = 1 * this.z; | |||
ctx.stroke(); | |||
} | |||
} | |||
// 闪电效果 | |||
function createLightning() { | |||
// 随机闪电位置 | |||
const startX = Math.random() * canvas.width; | |||
const endX = startX + (Math.random() * 200 - 100); | |||
// 创建闪电分支 | |||
const segments = 10 + Math.floor(Math.random() * 10); | |||
const points = []; | |||
points.push({x: startX, y: 0}); | |||
for (let i = 1; i < segments; i++) { | |||
const prev = points[i-1]; | |||
const variance = (i === segments-1) ? 0 : 30; | |||
points.push({ | |||
x: prev.x + (Math.random() * variance * 2 - variance), | |||
y: prev.y + (canvas.height / (segments-1)) | |||
}); | |||
} | |||
// 添加一些随机抖动 | |||
for (let i = 1; i < points.length-1; i++) { | |||
points[i].x += Math.random() * 10 - 5; | |||
} | |||
// 绘制闪电 | |||
ctx.beginPath(); | |||
ctx.moveTo(points[0].x, points[0].y); | |||
for (let i = 1; i < points.length; i++) { | |||
ctx.lineTo(points[i].x, points[i].y); | |||
} | |||
ctx.strokeStyle = `rgba(200, 220, 255, ${flashAlpha})`; | |||
ctx.lineWidth = 2; | |||
ctx.stroke(); | |||
// 添加闪电发光效果 | |||
if (flashAlpha > 0.3) { | |||
ctx.shadowBlur = 20; | |||
ctx.shadowColor = 'rgba(200, 220, 255, 0.7)'; | |||
ctx.stroke(); | |||
ctx.shadowBlur = 0; | |||
} | |||
// 创建分支闪电 | |||
if (Math.random() > 0.7) { | |||
const branchPoint = points[Math.floor(Math.random() * (points.length-3)) + 2]; | |||
const branchSegments = 3 + Math.floor(Math.random() * 3); | |||
const branchPoints = []; | |||
branchPoints.push({x: branchPoint.x, y: branchPoint.y}); | |||
for (let i = 1; i < branchSegments; i++) { | |||
const prev = branchPoints[i-1]; | |||
branchPoints.push({ | |||
x: prev.x + (Math.random() * 40 - 20), | |||
y: prev.y + (canvas.height / (branchSegments * 2)) | |||
}); | |||
} | |||
ctx.beginPath(); | |||
ctx.moveTo(branchPoints[0].x, branchPoints[0].y); | |||
for (let i = 1; i < branchPoints.length; i++) { | |||
ctx.lineTo(branchPoints[i].x, branchPoints[i].y); | |||
} | |||
ctx.strokeStyle = `rgba(200, 220, 255, ${flashAlpha * 0.7})`; | |||
ctx.lineWidth = 1; | |||
ctx.stroke(); | |||
} | |||
} | |||
// 闪电动画 | |||
function flash() { | |||
flashAlpha = 0.9; | |||
// 快速淡出 | |||
const fadeOut = () => { | |||
flashAlpha -= 0.05; | |||
if (flashAlpha <= 0) { | |||
flashAlpha = 0; | |||
clearTimeout(flashTimeout); | |||
scheduleNextFlash(); | |||
} else { | |||
flashTimeout = setTimeout(fadeOut, 30); | |||
} | |||
}; | |||
flashTimeout = setTimeout(fadeOut, 50); | |||
} | |||
// 安排下一次闪电 | |||
function scheduleNextFlash() { | |||
nextFlashTime = Date.now() + Math.random() * 3000 + 1000; | |||
} | |||
// 初始化雨滴 | |||
function initRaindrops() { | |||
for (let i = 0; i < raindropCount; i++) { | |||
raindrops.push(new Raindrop()); | |||
} | |||
} | |||
// 绘制背景 | |||
function drawBackground() { | |||
// 渐变背景 | |||
const gradient = ctx.createLinearGradient(0, 0, 0, canvas.height); | |||
gradient.addColorStop(0, '#020210'); | |||
gradient.addColorStop(1, '#0a0a30'); | |||
ctx.fillStyle = gradient; | |||
ctx.fillRect(0, 0, canvas.width, canvas.height); | |||
// 闪电照亮效果 | |||
if (flashAlpha > 0) { | |||
ctx.fillStyle = `rgba(200, 220, 255, ${flashAlpha * 0.2})`; | |||
ctx.fillRect(0, 0, canvas.width, canvas.height); | |||
} | |||
} | |||
// 动画循环 | |||
function animate() { | |||
drawBackground(); | |||
// 检查是否需要触发闪电 | |||
if (Date.now() > nextFlashTime && flashAlpha === 0) { | |||
flash(); | |||
} | |||
// 绘制闪电 | |||
if (flashAlpha > 0) { | |||
createLightning(); | |||
} | |||
// 更新和绘制雨滴 | |||
for (const drop of raindrops) { | |||
drop.update(); | |||
drop.draw(); | |||
} | |||
requestAnimationFrame(animate); | |||
} | |||
initRaindrops(); | |||
scheduleNextFlash(); | |||
animate(); | |||
// 点击屏幕也可以触发闪电 | |||
canvas.addEventListener('click', flash); | |||
}); | |||
</script> | |||
</body> | |||
</html> |
2025年5月5日 (一) 01:01的版本
模板:人物信息 何思源.JPG 罗斯,江西南昌人,政治魔怔人,萨拉查主义大手子。以在群聊中宣传新国家体制思想闻名,经常因政治观点与人争论而红温。真名何思源,但自称"新国家领袖"。沉迷于研究葡萄牙历史,特别是萨拉查时期的政治体制。曾经和叫徐志豪的魔怔人辩论政治理论,被驳倒后大脑降级每天研究《国家与革命》。
政治主张
狂热崇拜葡萄牙前领导人安东尼奥·德·奥利维拉·萨拉查
主张建立类似葡萄牙"新国家体制"的政治制度
秘密崇拜法西斯主义
认为传统价值观应该成为国家基石
自称"理性主义者"但经常情绪失控
轶事
曾在沔阳小镇群聊中连续发表3小时政治理论 因为政治观点被多个群组踢出 声称要建立"新南昌国家" 收藏了大量葡萄牙历史书籍
外部链接和注释
|
<!DOCTYPE html>