Surprising Space: Movement, Gradation, Radiation, and Anomaly
By: Yuna Wu
let x, y; var stars = []; function setup() { createCanvas(1800,780) //Stars for (var i = 0; i < 1000; i++) { stars[i] = new Star(); } // Starts in the middle x = width / 2; y = height / 2; //radiation //noLoop(); } class Planet { constructor (pSize, sColor, startingX, startingY) { this.planetSize = pSize; this.planetColor = sColor; this.positionX = startingX; this.positionY = startingY; } draw () { colorMode(RGB, 255) noStroke(); fill(240, 235, 221); ellipse(this.positionX+80, 85, 150, 150); fill(201, 195, 177) ellipse(this.positionX+40, 85, 30, 50); ellipse(this.positionX+100, 60, 50, 40); ellipse(this.positionX+100, 120, 40, 45); } } class UFO { constructor (startingX, startingY, scale) { this.positionX = startingX; this.positionY = startingY; this.scale = scale; } draw () { colorMode(RGB, 255) noStroke(); scale(this.scale); fill(57, 44, 153); rect(this.positionX+220, this.positionY+1, 6, 35, 20); circle(this.positionX+223, this.positionY+6, 10); fill(215, 215, 224); ellipse(this.positionX+226, this.positionY+46, 75, 45); fill(161, 161, 230); ellipse(this.positionX+226, this.positionY+66, 115, 45); fill(12, 72, 105); ellipse(this.positionX+226, this.positionY+66, 19, 19); fill(131, 133, 138); ellipse(this.positionX+205, this.positionY+55, 10, 10); ellipse(this.positionX+200, this.positionY+75, 10, 10); ellipse(this.positionX+185, this.positionY+60, 10, 10); ellipse(this.positionX+245, this.positionY+55, 10, 10); ellipse(this.positionX+250, this.positionY+75, 10, 10); ellipse(this.positionX+265, this.positionY+60, 10, 10); resetMatrix(); } } function uFOArray (n) { let outputArray = []; for (let i = 0; i < n ; i++) { outputArray.push(new UFO (10+(i*3), 120, (i*0.15))) } return outputArray } let myUFOs = uFOArray(8); //black hole class blackHole { constructor(startingX, startingY, s) { this.positionX = startingX; this.positionY = startingY; this.size = s } draw() { noStroke(); colorMode(HSB, 360, 100, 100); let dim = this.size; let radius = dim/2; //let h = random(0, 360); let h = 10; let b = 0; for (let r = radius; r > 0; --r) { fill(h, 100, b); ellipse(this.positionX, this.positionY, r, r); h = (h + 0.2) % 360; b = b+1 fill(0) ellipse(this.positionX, this.positionY,55, 55); } } } //Rockets class class Rocket { constructor(startingX, startingY) { this.positionX = startingX; this.positionY = startingY } draw() { translate(this.positionX+180,this.positionY+50); rotate(radians(-10)); //fire //fill(252, 210, 104); //ellipse(248, 406, 85, 185); //fill(122, 34, 24); //ellipse(248, 406, 55, 155); //rocket fill(191, 187, 187); rect(200, 250, 95, 155, 20); fill(201, 71, 71); triangle(200, 265, 295, 265, 248, 175); ellipse(248, 306, 55, 55); fill(186, 219, 230); ellipse(248, 306, 45, 45); noFill(); stroke(255); resetMatrix(); } } // star class // class Star { constructor() { this.x = random(width); this.y = random(height); this.size = random(0.25, 3); this.t = random(TAU); } draw() { this.t += 0.1; var scale = this.size + sin(this.t) * 2; fill(255) noStroke(); ellipse(this.x, this.y, scale, scale); } } function draw() { background(1, 3, 28); //stars for (var i = 0; i < stars.length; i++) { stars[i].draw(); } let blackHole1 = new blackHole (500, 200, 500) blackHole1.draw(); colorMode(RGB, 255) let g = drawingContext.createLinearGradient(200,250, 200,500); g.addColorStop(0, color(225,0)); g.addColorStop(0.5, color(180, 208, 240)); g.addColorStop(1, color(225,0)); drawingContext.fillStyle = g; noStroke(); square(0,0,1800) //rocket colorMode(RGB, 255) let g2 = drawingContext.createLinearGradient(280,250, 150,800); g2.addColorStop(0, color(255)); g2.addColorStop(0.2, color(255, 180, 0)); g2.addColorStop(1, color(45, 3, 0)); drawingContext.fillStyle = g2; translate(this.positionX+180,this.positionY+50); rotate(radians(-10)); ellipse(426, 620, 95, 485); resetMatrix(); let g3 = drawingContext.createLinearGradient(350, 340, 250,500); g3.addColorStop(0, color(255)); g3.addColorStop(0.5, color(255, 249, 194)); g3.addColorStop(0.9, color(194, 164, 16)); g3.addColorStop(1, color(200, 100, 0)); drawingContext.fillStyle = g3; translate(this.positionX+180,this.positionY+50); rotate(radians(-10)); ellipse(426, 520, 75, 205); resetMatrix(); //plante let planet1 = new Planet (10, "blue", 10, 10) planet1.draw(); let rockest1 = new Rocket(10, 10) rockest1.draw(); for(let i = 0; i < myUFOs.length ; i++){ myUFOs[i].draw() } }
Back to Yuna Wu's Page