UNPKG

seed-engine

Version:

A Lightweight 2D game engine using WebGL2. The engine is designed on the focus of creating a bridge between creating and publishing games to the Seed Network as modules.

62 lines (56 loc) 1.88 kB
/** * A color with r, g, b, a values between 0 and 1. * * Contains instatiation functions for creating default * colors without explicitly defining the values. */ export default class Color { /** * Builds a color into an array for easy access for WebGL. * * @param {number} r Red value between 0 - 1 * @param {number} g Green value between 0 - 1 * @param {number} b Blue value between 0 - 1 * @param {number} a Alpha value between 0 - 1 */ constructor(r = 1, g = 1, b = 1, a = 1) { this.color = [this.minmax(r), this.minmax(g), this.minmax(b), this.minmax(a)]; } minmax(val, min = 0, max = 1) { return Math.max(min, Math.min(max, val)); } /** * * @param {number} r Red value between 0 - 1. Defaults to previous value. * @param {number} g Green value between 0 - 1. Defaults to previous value. * @param {number} b Blue value between 0 - 1. Defaults to previous value. * @param {number} a Alpha value between 0 - 1. Defaults to previous value. */ set(r = this.color[0], g = this.color[1], b = this.color[2], a = this.color[3]) { this.color = [this.minmax(r), this.minmax(g), this.minmax(b), this.minmax(a)]; } /** * Returns a new color with the color green. Value: #00FF00 with alpha 1. */ static green() { return new Color(0, 1, 0, 1); } /** * Returns a new color with the color blue. Value: #0000FF with alpha 1. */ static blue() { return new Color(0, 0, 1, 1); } /** * Returns a new color with the color red. Value: #FF0000 with alpha 1. */ static red() { return new Color(1, 0, 0, 1); } /** * Returns a new color with the color pink. Value: #FF1493 with alpha 1. */ static pink() { return new Color([1, 0.078, 0.576, 1]); } }