diff --git a/flame/flame.js b/flame/flame.js new file mode 100644 index 0000000..7ed5776 --- /dev/null +++ b/flame/flame.js @@ -0,0 +1,78 @@ +const fd = { + width: 150, + height: 0, +}; + +fd.height = fd.width * 2; + +function Flame() { + this.x = window.innerWidth / 2; + this.y = (window.innerHeight / 2) - 20; + this.width = fd.width; + this.height = fd.height; + this.resize = function () { + this.x = window.innerWidth / 2; + this.y = (window.innerHeight / 2) - 20; + }; + this.flicker = function () { + + }; + this.show = function (transValue) { + fill(249, 168, 37); + strokeWeight(0); + // outer flame + ellipse(this.x, this.y, this.width, this.height * 1.2); + fill(255, 235, 59); + // inner flame + ellipse(this.x, this.y + 10 + (this.height / 6), this.width * 0.66, this.height * 0.8); + }; + this.overlay = function () { + fill(255, 2, 59, 0.3); + ellipse(this.x, this.y, this.width, this.height); + }; +} + +function Match() { + this.x = window.innerWidth / 2; + this.y = (window.innerHeight / 2) + 18; + + this.resize = function () { + this.x = window.innerWidth / 2; + this.y = (window.innerHeight / 2) + 18; + }; + this.show = function () { + const x = this.x; + const y = this.y; + fill(93, 64, 55); + // matchstick + rect(x - (fd.width / 6), y + 50, fd.width / 3, y + 10, 5); + // matchhead + fill(84, 110, 122); + // base trapezoid + quad(x - 40, y + 20, x + 40, y + 20, x + 30, y + 100, x - 30, y + 100); + // round tip + arc(x, y + 20, 80, 85, 360, 20, OPEN); + }; +} + +let flame; +let match; +function setup() { + canvas = createCanvas(window.innerWidth, window.innerHeight); + flame = new Flame(); + match = new Match(); +} + +function draw() { + background(38, 50, 56); + flame.show(); + match.show(); +} + +window.onresize = function () { + const w = window.innerWidth; + const h = window.innerHeight; + resizeCanvas(w, h); + flame.resize(); + match.resize(); +}; diff --git a/flame/index.html b/flame/index.html new file mode 100644 index 0000000..f55d9a7 --- /dev/null +++ b/flame/index.html @@ -0,0 +1,19 @@ + +
+