=====Rex Lee's crazyDog.js =====
[[howard-lee|by Rex Lee]]
===== about my crazyDog.js =====
What was difficult for you? I just don't know function really well.
What are you proud of? I guess it will be many dogs.
What did you learn? I learn about classes patterns.
How do you feel about this? I feel good after I made some progress.
The animation code is released under the [[https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html|GNU Lesser General Public License v2.1]].
===== the code for my crazyDog.js =====
function setup() {
createCanvas(2000, 1200);
noLoop();
}
class BackgroundPattern {
constructor (xposition, yposition, size, pColor )
{ this.xposition = xposition;
this.yposition = yposition;
this.size = size;
this.patternColor = pColor;
}
draw () {
fill(this.patternColor);
rect(this.xposition, this.yposition, this.size, this.size);
fill(227, 94, 84);
rect(this.xposition + 10, this.yposition + 10, this.size/2, this.size/2);
}
}
function patternRow (n, xposition, yposition) {
let outputArray = [];
for (let i = 0; i < n ; i++) {
outputArray.push(new BackgroundPattern (xposition + (i*105), yposition, 100,"brown"))
}
return outputArray
}
class Dog {
constructor (xposition,yposition, fColor, eColor)
{ this.xposition = xposition;
this.yposition = yposition;
this.furColor = fColor;
this.eyeColor = eColor
}
draw () {
fill(this.furColor);
let leftEarPosition = [this.xposition+180,
this.yposition+140];
let rightEarPosition = [this.xposition+300,this.yposition+140];
triangle(30 + leftEarPosition[0], 75 + leftEarPosition[1], 58 + leftEarPosition[0], 20 + leftEarPosition[1], 86 + leftEarPosition[0], 75 + leftEarPosition[1]);
triangle(30 + rightEarPosition[0], 75 + rightEarPosition[1], 58 + rightEarPosition[0], 20 + rightEarPosition[1], 86 + rightEarPosition[0], 75 + rightEarPosition[1]);
circle(this.xposition+300,this.yposition+300, 244);
fill(this.eyeColor);
rect(this.xposition+250,this.yposition+ 270, 15, 85);
rect(this.xposition+335,this.yposition+ 270, 15, 85);
}
}
function dogArray (n, xposition, yposition) {
let outputArray = [];
for (let i = 0; i < n ; i++) {
outputArray.push(new Dog ( xposition+ (i*200), yposition+(i*200),"yellow","pink"))
}
return outputArray
}
function fullPattern (startingX, startingY, numberOfRows, rowLength){
for(let i = 0; i < numberOfRows ; i++){
let mypattern = patternRow(rowLength, startingX, startingY+(i*105));
for(let i = 0; i < mypattern.length ; i++){
mypattern[i].draw()
};
}
}
function fulldogs (startingX, startingY, numberOfRows, rowLength){
for(let i = 0; i < numberOfRows ; i++){
let mydogs = dogArray(rowLength, startingX, startingY+(i*105));
for(let i = 0; i < mydogs.length ; i++){
mydogs[i].draw()
};
}
}
//let myDogs = dogArray(20);
function draw() {
background(229, 195, 230);
fullPattern(5,5,10,30)
fulldogs(5,5,10,30)
//for(let i = 0; i < myDogs.length ; i++){
//myDogs[i].draw()
//let dog2 = new Dog (400,100, "yellow", "red");
//dog2.draw();
//}
}