- Registriert
- 3 Aug. 2014
- Beiträge
- 28.573
Let it snow..
Für Greasemonkey und Tampermonkey ein bisschen Weihnachtsstimmung.
Edit: Der Schnee lässt sich mit "^" an (Standard: An) und abschalten.
Hier ein Weg die Schneekanone immer zu zünden oder abzuschalten: NGB LetItSnow [Grease/Tamper]
Merry X-Mas!
Für Greasemonkey und Tampermonkey ein bisschen Weihnachtsstimmung.
Edit: Der Schnee lässt sich mit "^" an (Standard: An) und abschalten.
Hier ein Weg die Schneekanone immer zu zünden oder abzuschalten: NGB LetItSnow [Grease/Tamper]
Javascript:
// ==UserScript==
// @name NGB LetItSnow
// @version 1
// @grant none
// @include https://ngb.to/*
// @include https://www.ngb.to/*
// ==/UserScript==
let canvasElement = document.createElement('canvas')
canvasElement.width = '2000'
canvasElement.height = '1600'
document.body.append(canvasElement)
canvasElement.style['position'] = 'fixed'
canvasElement.style['left'] = '0px'
canvasElement.style['top'] = '0px'
canvasElement.style['z-index'] = '100'
canvasElement.style['background'] = 'transparent'
canvasElement.style['maxwidth'] = '100%'
canvasElement.style['maxheight'] = '100%'
canvasElement.style['user-select'] = 'none'
canvasElement.style['pointer-events'] = 'none'
let ctx = canvasElement.getContext('2d')
let pi2 = 2 * Math.PI
let particles = []
let particleCount = 250
let wind = 0
let doSnow = true
function setup() {
ctx.clearRect(0, 0, canvasElement.width, canvasElement.height)
for (let i = 0; i < particleCount; i++) {
particles.push(new particle((Math.random() * canvasElement.width) + 5, (Math.random() * canvasElement.height - 5), Math.random() * 4 + 1, 1, 0.125, 1, 1.125, 0.15))
}
window.requestAnimationFrame(drawSnow)
}
class particle {
constructor(x, y, size, maxSpeedX, minSpeedX, maxSpeedY, minSpeedY) {
this.wind = 0
this.x = x
this.y = y
this.size = size
this.speedX = (Math.random() * maxSpeedX + minSpeedX)
this.speedY = (Math.random() * maxSpeedY + minSpeedY)
}
moveBySpeed() {
this.x += this.speedX;
this.y += this.speedY;
this.x += wind
//this.size += this.y / (canvasElement.height * 75)
}
}
function drawSnow() {
ctx.clearRect(0, 0, canvasElement.width, canvasElement.height)
if (!doSnow) return
wind = (Math.random() * 1) + (Math.random() * -1)
let deleted = 0
for (let i = 0; i < particles.length; ++i) {
let particle = particles
[I] particle.moveBySpeed()
if (particle.x <= 0 || particle.x > canvasElement.width) {
particles.splice(i, 1)
--i
++deleted
} else if (particle.y <= 0 || particle.y > canvasElement.height) {
particles.splice(i, 1)
--i
++deleted
}
}
for (let i = 0; i < deleted; ++i) particles.push(new particle((Math.random() * canvasElement.width) + 1, 1, Math.random() * 4 + 1, 1, 0.125, 1, 1.125, 0.15))
/*
ctx.fillStyle = '#333'
ctx.beginPath()
for (let particle of particles) {
ctx.moveTo(particle.x, particle.y)
ctx.arc(particle.x, particle.y, particle.size, 0, pi2)
}
*/
ctx.fill()
ctx.fillStyle = '#fff'
ctx.beginPath()
for (let particle of particles) {
ctx.moveTo(particle.x, particle.y)
ctx.arc(particle.x - (particle.size * 0.25), particle.y - (particle.size * 0.25), particle.size * 0.75, 0, pi2)
}
ctx.fill()
window.requestAnimationFrame(drawSnow)
}
let cookieData = document.cookie.split('; ')
for (let cookie of cookieData) {
if (cookie.startsWith('doSnow')) {
doSnow = cookie.split('=')[1] === 'false' ? false : true
document.cookie = 'doSnow=; max-age=-1'
}
}
document.cookie = 'doSnow=' + doSnow.toString() + '; domain=ngb.to; path=/'
setup()
document.addEventListener('keyup', function (evt) {
if (evt.key === 'Dead') {
doSnow = !doSnow
document.cookie = 'doSnow=; max-age=-1';
document.cookie = 'doSnow=' + doSnow.toString() + '; domain=ngb.to; path=/'
if (doSnow) window.requestAnimationFrame(drawSnow)
else ctx.clearRect(0, 0, window.innerWidth, window.innerHeight)
}
})
Merry X-Mas!
Zuletzt bearbeitet: