// Cloned by Meenu Mathew on 30 Sep 2021 from World "week1.1 One Cube World (P5) " by Meenu Mathew
// Please leave this clone trail here.
// Cloned by Meenu Mathew on 30 Sep 2021 from World "One Cube World (P5)" by Starter user
// Please leave this clone trail here.
const objectsize = 50; // size of object
const anglechange = 0.05; // how much the rotate angle changes each step
var angle = 0; // rotate angle starts at 0
var img;
const bgmusic ='/uploads/starter/SuspenseStrings.mp3';
//add bg music
AB.backgroundMusic(bgmusic);
// make an array of random (x,y,z) positions
const noboxes = 100; // how many boxes to have
var a = new Array(noboxes); // array of the box positions
for ( var i=0; i < noboxes; i++ ) // set up the array
{
a[i] = [ AB.randomIntAtoB(-500,500), AB.randomIntAtoB(-500,500), AB.randomIntAtoB(-500,500) ];
}
function setup() // "setup" is called once at start of run
{
createCanvas ( ABWorld.fullwidth(), ABWorld.fullheight(), WEBGL );
}
/*Called directly before setup(), the preload() function is used to handle asynchronous loading of external files in a blocking way.
If a preload function is defined, setup() will wait until any load calls within have finished.*/
function preload()
{
img=loadImage('uploads/meenumathew/butterfly.jpeg');
}
/*"draw" is called every timestep during run Called directly after setup(),
the draw() function continuously executes the lines of code contained inside its block until the program is stopped or noLoop() is called. */
function draw()
{
background("lightblue"); // background color
//fill("lightpink"); // paint box with this color
texture(img); //fill with image
rotateX(angle); // set each dimension rotation angle to "angle"
rotateY(angle);
rotateZ(angle);
//to make another object
for ( var i=0; i < noboxes; i++ )
{
translate ( a[i][0], a[i][1], a[i][2] ); // get box position i
box(objectsize);
}
angle = angle + anglechange ; // change angle each step to get rotate movement
}