Animation, functions, and keyboard input
// Initialize variables
noStroke();
var leftX = 120; // position of cloud moving left
var rightX = 200; // position of cloud moving right
var sunRadius = 100;
Start from KA-JS Parting Cloud Challenge
var cloud = function(x,y) {
ellipseMode(CENTER);
fill(255, 255, 255);
ellipse(x,y,126,97);
ellipse(x+62, y, 70, 60);
ellipse(x-62, y, 70, 60);
};
var sun = function (radius) {
fill(255, 170, 0); // orange
ellipse(200, 100, radius, radius); // circle
};Initialize variables
Define function to draw cloud at (x,y)
Define function to draw sun with (radius)
var draw = function() {
background(184, 236, 255); // blue sky
cloud(leftX,150); // left cloud
sun(sunRadius);
cloud(rightX,70); // right cloud
};Define special function draw, inside it:
Why are the clouds not moving?
Because the positions for the clouds are unchanged inside the draw function
var moveClouds = function () { // wrap around
leftX -= 1;
if (leftX < 0) {
leftX = 900;
}
rightX += 1;
if (rightX > 900) {
rightX = 0;
}
};
var draw = function() {
background(184, 236, 255); // blue sky
cloud(leftX,150); // left cloud
sun(sunRadius);
cloud(rightX,70); // right cloud
};Define function moveClouds to animate and wrap around, changing positions leftX and rightX each time it's called
Add a call to moveClouds() inside function draw()
var draw = function() {
background(184, 236, 255); // blue sky
cloud(leftX,150); // left cloud
sun(sunRadius);
cloud(rightX,70); // right cloud
moveClouds();
};
var personX = width/2;
var personY = height/2;
var person = getImage("space/octopus");Add a call to the Processing library function image() in function draw to display image
// Initialize variables
noStroke();
var leftX = 120; // position of cloud moving left
var rightX = 200; // position of cloud moving right
var sunRadius = 100;
In the initialize variables section,
add variables for image and X,Y positions
var draw = function() {
background(184, 236, 255); // blue sky
cloud(leftX,150); // left cloud
sun(sunRadius);
cloud(rightX,70); // right cloud
moveClouds();
}; sun(sunRadius);
image(person, personX, personY, 140, 140);
cloud(rightX,70);
moveClouds();
};var keyPressed = function() {
var speed = 10;
if (keyCode === UP) {
personY -= speed;
} else if (keyCode === DOWN) {
personY += speed;
} else if (keyCode === LEFT) {
personX -= speed;
} else if (keyCode === RIGHT) {
personX += speed;
}
};
var textDisplay = function () {
// green background
fill(45, 194, 8);
rect(0,350, width, 50);
// white text
fill(255,255,255);
textSize(20);
text("Move ship with arrow keys", 10, height-12);
};
Define function textDisplay for the instruction text
var draw = function() {
background(184, 236, 255); // blue sky
cloud(leftX,150); // left cloud
sun(sunRadius);
image(person, personX, personY, 140, 140);
cloud(rightX,70); // right cloud
moveClouds();
};
Add call to textDisplay() inside function draw
textDisplay();
};