From 7bce729c7500c01ad4dffaa98c5af07610591138 Mon Sep 17 00:00:00 2001 From: Ayush kumar <67006255+Ayush7614@users.noreply.github.com> Date: Sun, 3 Oct 2021 17:43:51 +0530 Subject: [PATCH] added valentine --- Valentines/HappyMonkey-Regular.ttf | Bin 0 -> 67140 bytes Valentines/Heart.js | 68 +++++++++++++++++++++++++++++ Valentines/HeartRain.js | 32 ++++++++++++++ Valentines/README.md | 7 +++ Valentines/index.html | 41 +++++++++++++++++ Valentines/index.js | 40 +++++++++++++++++ 6 files changed, 188 insertions(+) create mode 100644 Valentines/HappyMonkey-Regular.ttf create mode 100644 Valentines/Heart.js create mode 100644 Valentines/HeartRain.js create mode 100644 Valentines/README.md create mode 100644 Valentines/index.html create mode 100644 Valentines/index.js diff --git a/Valentines/HappyMonkey-Regular.ttf b/Valentines/HappyMonkey-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..71be51d37c7b9e159756eb4d6bd6b1966dd04c4b GIT binary patch literal 67140 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 literal 0 HcmV?d00001 diff --git a/Valentines/Heart.js b/Valentines/Heart.js new file mode 100644 index 0000000..d70a876 --- /dev/null +++ b/Valentines/Heart.js @@ -0,0 +1,68 @@ +class Heart { + constructor(x = 0, y = 0, radius = 10, pulseRadius = 5, falling = false) { + this.x = x; + this.y = y; + this.points = []; + this.angle = 0; + this.radius = radius; + this.pulse = 1; + this.pulseRadius = pulseRadius; + this.beat = true; + this.falling = falling; + } + + oneCycle() { + this.radius += 0.005; + for (let a = 0; a < TWO_PI; a += 0.3) { + let x = this.radius * 16 * pow(sin(a), 3); + let y = -this.radius * (13 * cos(a) - 6 * cos(2 * a) - 2 * cos(3 * a) - cos(4 * a)); + if (this.beat) { + this.pulse = map(cos(a), 0, this.pulseRadius, 0.5, -1); + } + + if (this.points.length < 500) { + this.points.push(createVector(x, y)); + } + } + } + + + update() { + let x = this.radius * 16 * pow(sin(this.angle), 3); + let y = -this.radius * (13 * cos(this.angle) - 6 * cos(2 * this.angle) - 2 * cos(3 * this.angle) - cos(4 * this.angle)); + this.radius += 0.005; + this.angle += 0.05; + if (this.beat) { + this.pulse = map(cos(this.angle), 0, this.pulseRadius, 0.5, -1); + } + + if (this.points.length < 500) { + // this.points.pop(); + this.points.push(createVector(x, y)); + } + } + + render(x, y) + { + stroke('white'); + strokeWeight(2); + strokeJoin(ROUND); + let opacity = 1; + if (this.falling) { + this.x = x; + this.y = y; + opacity = 0.6; + noStroke(); + } + push(); + translate(this.x, this.y); + fill(255, 101, 186, opacity * 255); + beginShape(); + for (let v of this.points) { + vertex(this.pulse * v.x, this.pulse * v.y); + } + endShape(); + pop(); + } + } + \ No newline at end of file diff --git a/Valentines/HeartRain.js b/Valentines/HeartRain.js new file mode 100644 index 0000000..6e6a399 --- /dev/null +++ b/Valentines/HeartRain.js @@ -0,0 +1,32 @@ +class HeartRain { + constructor() { + let startingX = floor(random(width) * 2); + let startingY = floor(random(width) * 2); + this.pos = createVector(startingX, startingY); + this.vel = createVector(cos(random(-5, 5)), 0.5 + Math.random() * 5); + this.acc = createVector(0, 0); + this.heart = new Heart(this.pos.x, this.pos.y, random(1, 3), random(5, 10), true); + this.heart.oneCycle(); + } + + update() { + this.vel.add(this.acc); + this.pos.add(this.vel); + this.vel.limit(5); + + if (this.pos.y > height) { + this.pos.y = -10; + } + if (this.pos.x > width) { + this.vel.x *= -1; + } else if (this.pos.x < -10) { + this.pos.x = width; + } + this.acc.mult(0) + } + + render() { + this.heart.render(this.pos.x, this.pos.y); + } + + } \ No newline at end of file diff --git a/Valentines/README.md b/Valentines/README.md new file mode 100644 index 0000000..59a2243 --- /dev/null +++ b/Valentines/README.md @@ -0,0 +1,7 @@ +# Double Click Heart +An Valentines created using pure HTML, Inline CSS and JS when you click on it. It gives Rain of Hearts + +## Setup +Just download and open index.html. + + diff --git a/Valentines/index.html b/Valentines/index.html new file mode 100644 index 0000000..33c1af9 --- /dev/null +++ b/Valentines/index.html @@ -0,0 +1,41 @@ + + + + + + + + LoveHearts | Ayush + + + + + + + +

Click to make hearts

+ + + + + + + \ No newline at end of file diff --git a/Valentines/index.js b/Valentines/index.js new file mode 100644 index 0000000..47b0c02 --- /dev/null +++ b/Valentines/index.js @@ -0,0 +1,40 @@ +let hearts = []; +let fallingHearts = []; + +function preload() { + font = loadFont("./HappyMonkey-Regular.ttf"); +} + +function setup() { + createCanvas(windowWidth, windowHeight); + hearts[0] = new Heart(width / 2, height / 2); + for (let i = 0; i < 100; i++) { + fallingHearts.push(new HeartRain()); + } + + textFont(font); + textAlign(CENTER, CENTER); +} + + +window.addEventListener('click', function () { + hearts.push(new Heart(mouseX, mouseY, random(2, 5), random(10, 15))) +}) + +function draw() { + background(255); + for (let i = 0; i < fallingHearts.length; i++) { + fallingHearts[i].update(); + fallingHearts[i].render(); + } + + for (let heart of hearts) { + heart.update(); + heart.render(); + } + + noStroke(); + fill(255); + textSize(hearts[0].pulse * 25) + text("Happy V-Day", width / 2, (height / 2)) +} \ No newline at end of file