By [[Ron-liu| ron liu]]
m = 10;
m2 = 10;
n = 25;
r = 10 ^ 20;
let canvasWidth = 1700;
let canvasHeight = 800;
let colors = ['black'];
let scolors = ["white"];
let x, y;
function pick(inputArray) {
return inputArray[Math.floor(inputArray.length * Math.random())];
}
function randomRange(min, max) {
return min + (max - min) * Math.random();
}
function buildArray(n, fillFunction) {
let outputArray = [];
for (let i = 0; i < n; i++) {
outputArray.push(fillFunction(i));
}
return outputArray;
}
function setup() {
createCanvas(canvasWidth, canvasHeight);
background(0, 0, 0);
angleMode(DEGREES);
x = width / 2;
y = height;
textSize(10);
textAlign(LEFT);
//noLoop()
//frameRate(5);
}
//I edited this code and borrow from:https://editor.p5js.org/MK_Does_coding/sketches/SxR-_DX3E
class Radiation {
constructor(rsize, rColor, x, y) {
this.radiationSize = rsize;
this.radiationColor = this.radiationColor;
this.xposition = randomRange(10, canvasWidth - 10);
this.yposition = randomRange(y, 10 + y);
}
draw() {
noFill();
strokeWeight(2.5);
stroke(0, 0, 0);
circle(width / 2, height / 2, m);
stroke(72, 54, 77);
circle(width / 2, height / 2, m2 / 10);
stroke(245, 66, 242);
noFill();
circle(width / 2, height / 2, m2 / 10.5);
for (var i = 0; i < 5; i += 1) {
m += 1;
m2 += 1;
}
if (m > width && m > height) {
m = 0;
n += 10;
background(51, 51, 51, n);
}
if (m2 > width * 10 && m2 > height * 10) {
m2 = 0;
n = 25;
}
}
}
class BackgroundPattern {
constructor(size, gColor, x, y) {
this.backgroundSize = size;
this.backgroundColor = gColor;
this.xposition = randomRange(20, canvasWidth - 20);
this.yposition = randomRange(y, 5 + y);
}
}
class Spaceship {
constructor(ssize, scolor, maxX, maxY, randomN) {
this.shipColor = pick(colors);
this.spaceshipesize = ssize;
this.spaceship = scolor;
this.xposition = randomRange(300, maxX);
this.yposition = randomRange(30, maxY);
this.n = randomN;
}
draw(number) {
let x = (1 * frameCount) % (-10 + height / 1);
let color1 = "beige";
if (Math.random() * 255 > 0) {
color1 = "white";
}
fill(color(color1));
translate(this.xposition, this.yposition);
if (Math.random() < 0.5) stroke(0);
fill(250, 92, 156);
circle(50, 50, x + 70);
fill(3, 236, 252);
circle(50, 50, x + 15);
fill(0, 0, 0);
circle(50, 50, x + 2.5);
fill(3, 236, 252);
circle(50, 50, x + 0.5);
fill(this.shipColor);
circle(50, 50, x + -1);
resetMatrix();
}
}
class Spaceshipx {
constructor(xposition, yposition, size, inputColor, randomOrNot) {
this.xposition = xposition;
this.yposition = yposition;
this.size = size;
this.spaceshipxColor = ["yellow", "pink", "blue", "orange", "purple"];
this.petalShape = ["circle"];
this.petalN = Math.floor(randomRange(5, 10));
this.inputColor = inputColor;
this.randomOrNot = randomOrNot;
}
draw() {
let colorPicker = pick(this.spaceshipxColor);
let shapePicker = pick(this.petalShape);
this.xposition = randomRange(20,canvasWidth - 20);
this.yposition = randomRange(0, y);
noStroke();
translate(0,0);
if (this.randomOrNot != "random" && this.randomOrNot == "no") {
colorPicker = this.inputColor;
}
let g = drawingContext.createLinearGradient(
this.xposition + 10,
this.yposition + 20,
this.xposition + 15,
this.yposition + 40
);
translate(this.xposition+10, this.yposition+20);
if (Math.random() < 0.5) stroke(0);
g.addColorStop(0, "lightblue");
g.addColorStop(1, "pink");
drawingContext.fillStyle = g;
beginShape(TESS);
vertex(this.xposition + 50*this.size, this.yposition + 90*this.size);
vertex(this.xposition - 0*this.size, this.yposition + 30*this.size);
vertex(this.xposition - 0*this.size, this.yposition + 30*this.size);
vertex(this.xposition + 0*this.size, this.yposition + 10*this.size);
vertex(this.xposition + 20*this.size, this.yposition + 30*this.size);
vertex(this.xposition + 50*this.size, this.yposition - 10*this.size);
vertex(this.xposition + 10*this.size, this.yposition + 20*this.size);
vertex(this.xposition + 20*this.size, this.yposition + 30*this.size);
endShape(CLOSE);
resetMatrix();
}
}
let Random = Math.random();
let smallShapes = buildArray(20,(i) => new Spaceship(0.25, "white", 1000, 800, 10));
console.log(smallShapes[smallShapes.length-1])
smallShapes[smallShapes.length - 1].shipColor = ' gray'
let smallspaceships = buildArray(20,(i) => new Spaceshipx(60*i*Math.random(), 15*i ,1, "pink", "random"));
function backgroundPatternArray(number, x, y) {
let outputArray = [];
for (let i = 0; i < number; i++) {
outputArray.push(new BackgroundPattern(10, "orange", x + i * 35, y));
}
return outputArray;
}
function Background2(startingX, startingY, numberOfArrays, arrayLength) {
for (let i = 0; i < numberOfArrays; i++) {
let myBackground = backgroundPatternArray(
arrayLength,
startingX,
startingY + i * 35
);
for (let i = 0; i < myBackground.length; i++) {
myBackground[i].draw();
}
}
}
let myRadiation = new Radiation(200, 0, 300, 300);
let s1 = new Spaceshipx(300, 200, 1, "pink", "no");
function draw() {
background(10);
smallShapes.forEach(x => x.draw())
// myRadiation.draw()
for(let i = 0 ; i < 2 ; i++){}
let spaceshipx = new Spaceshipx (randomRange(0, 100),randomRange(100, 60) , randomRange(100,0));
//spaceshipx.draw();
s1.draw();
smallspaceships.forEach(x => x.draw())
}