xxxxxxxxxx
406
var enemyX //make the variable for x position of enemy
var userX // make the variable for x position of user
var userY // make the variable for y position of user
var mouseClick = 0 //mouse click moves the user
var moonX //move the moon
var d = 255;
function setup() {
createCanvas(900, 400);
enemyX = 1000; //starting location of enemy
userX = 700;
userY = 255;
moonX = 800
moonY = 800
a = random(255);
b = random(255);
c = random(255);
}
function draw() {
background(0);
//draw stars
for (i = 0; i < 1000; i++) {
fill(255);
noStroke();
ellipse(random(1, 1000) * i, random(1, 1000) * i, 5, 5);
fill(100);
ellipse(random(1, 100) * i, random(1, 100) * i, 5, 5)
}
//decorate background
push();
moonX = moonX - 0.3
noStroke();
fill(120);
ellipse(moonX, 130, 75, 75);
ellipse(moonX, 130, 70, 7);
fill(80);
ellipse(moonX + 10, 150, 30, 25);
fill(a, b, c, 90)
ellipse(moonX, 134, 133, 30)
fill(120);
ellipse(moonX, 125, 75, 19);
fill(80);
ellipse(moonX - 10, 110, 20, 15);
pop();
//draw ground
push();
stroke(255);
strokeWeight(1.5);
fill(a, b, c);
rect(0, 300, 900, 100);
pop();
//User character movement
if (userX === 85) {
userY = userY - 1
enemyX = enemyX;
}
if (userX <= 85) {
userX = 85 // when it reaches ufo, it won't move to left anymore
enemyX = enemyX
}
if (userX <= enemyX) {
enemyX = enemyX
}
//draw user character
push();
noStroke();
if(mouseIsPressed){
d=random(140,240)
} else { d=255
}
fill(255);
ellipse(userX, userY, 45, 80);
fill(0);
ellipse(userX, userY - 30, 75, 30);
fill(120);
ellipse(userX, userY - 17, 38, 10)
fill(255);
ellipse(userX, userY - 36, 45, 38);
fill(200);
ellipse(userX - 28, (userY + 3), 12, 60);
ellipse(userX + 28, (userY + 3), 12, 60);
fill(255);
ellipse(userX - 30, (userY + 3), 6, 60);
ellipse(userX + 30, (userY + 3), 6, 60);
fill(0);
ellipse(userX, userY - 32, 33, 23);
fill(0);
ellipse(userX, userY - 32, 33, 23);
fill(0, 0, d);
ellipse(userX - 7, userY - 32, 10, 9);
ellipse(userX + 7, userY - 32, 10, 9);
pop();
//vision blocker for EVE
push();
noStroke();
fill(0);
rect(0, 0, 140, 100);
pop();
//DRAW UFO
//lenz
push();
stroke(255, 255, 255, 180);
strokeWeight(5);
fill(0, 255, 0);
ellipse(82, 95, 60, 50);
pop();
push();
noStroke();
fill(a-80, b-80, c-80,240);
moonY = moonY - 0.5
ellipse(moonY - 10, 75, 35, 35)
pop();
//bottom
for (i = 0; i < 10; i++) {
noFill();
fill(255);
stroke(0, 80);
strokeWeight(1);
ellipse(82, 100 - (2.3 * i), 120 - (1.5 * i), 10);
}
//top
for (i = 0; i < 10; i++) {
noFill();
fill(255);
stroke(0, 80);
strokeWeight(1);
ellipse(82, 75 - (2.3 * i), 70 - (1.5 * i), 10);
}
//draw radar
for (i = 0; i < 10; i++) {
push();
fill(0, 255, 0, (20 * i) - 30);
noStroke();
rect(50 - (1.5 * i), 100 + (20 * i), 65 + (3 * i), 20);
pop();
}
for (i = 0; i < 10; i++) {
noFill();
stroke(255, 255, 255, random(0, 255));
strokeWeight(1);
ellipse(80, 290 - (20 * i), 120 - (5 * i), 10);
}
//draw the enemy character
push();
noFill();
stroke(255, 204, 100);
strokeWeight(1);
if (userX <= 85) {
enemyX = enemyX
} else {
if (userX <= enemyX) {
enemyX = enemyX - 0.55; //make enemy move (Game level)
}
}
//draw electricity
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 30) + random(-10, 20)), 300);
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 30) + random(-10, 20)), 300);
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 30) + random(-10, 20)), 300);
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 50) + random(-10, 20)), 300);
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 30) + random(-10, 20)), 300);
pop();
push();
stroke(255, 204, 100, 180);
strokeWeight(1)
curve(enemyX, 160, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 50)), 300, ((enemyX + 50) + random(-10, 50)), 300);
curve(enemyX, 160, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 50)), 300, ((enemyX + 50) + random(-10, 50)), 300);
curve(enemyX, 160, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 50)), 300, ((enemyX + 50) + random(-10, 50)), 300);
curve(enemyX, 160, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 50)), 300, ((enemyX + 50) + random(-10, 50)), 300);
curve(enemyX, 160, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 50)), 300, ((enemyX + 50) + random(-10, 50)), 300);
pop();
push();
stroke(255, 255, 255, 180);
strokeWeight(1)
curve(enemyX + 30, 190, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 20)), 300, ((enemyX - 50) + random(-10, 20)), 300);
curve(enemyX + 30, 190, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 20)), 300, ((enemyX - 50) + random(-10, 20)), 300);
curve(enemyX + 30, 190, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 20)), 300, ((enemyX - 50) + random(-10, 20)), 300);
curve(enemyX + 30, 190, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 20)), 300, ((enemyX - 50) + random(-10, 20)), 300);
curve(enemyX + 30, 190, (enemyX + 10), 240, ((enemyX - 10) + random(-10, 20)), 300, ((enemyX - 50) + random(-10, 20)), 300);
stroke(0, 0, 80, 180)
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 30) + random(-10, 20)), 300);
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 30) + random(-10, 20)), 300);
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 30) + random(-10, 20)), 300);
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 50) + random(-10, 20)), 300);
curve(enemyX - 30, 160, (enemyX - 10), 240, ((enemyX + 10) + random(-10, 30)), 300, ((enemyX - 30) + random(-10, 20)), 300);
pop();
//draw arm
push();
noFill();
stroke(255);
strokeWeight(4);
line(enemyX, 233, (enemyX - 5), 200);
pop();
//draw face and body
push();
fill(0);
stroke(255, 204, 100);
strokeWeight(3);
ellipse(enemyX + 5, 260, 25, 25)
stroke(255);
fill(255, 204, 100);
strokeWeight(2)
rect((enemyX - 10), 243, 30, 20, 6);
strokeWeight(1.5);
ellipse(enemyX, 233, 35, 40);
ellipse((enemyX - 10), 193, 25, 30);
pop();
push();
stroke(255);
strokeWeight(4);
fill(0);
ellipse(enemyX, 233, 20, 20);
pop();
//draw gun
push();
fill(255, 0, 0)
noStroke();
rect(enemyX - 35, 240, 8, 15, 10);
rect(enemyX - 50, 240, 18, 6);
fill(255);
rect(enemyX - 59, 241, 8.7, 3);
pop();
//draw eyes
push();
noStroke();
fill(0);
rect(enemyX - 20, 190, 20, 8, 30);
pop();
//draw eyeball
push();
fill(255, 0, 0, random(130, 255));
noStroke();
rect(enemyX - 17, 192, 5, 5, 30);
rect(enemyX - 8, 192, 5, 5, 30);
pop();
//draw arms
push();
noFill();
stroke(255);
strokeWeight(4);
line(enemyX, 233, (enemyX - 20), 260);
line((enemyX - 20), 260, (enemyX - 30), 250)
pop();
//TEXT
//Win
if (userX === 85) {
push();
textSize(32);
noStroke();
fill(255, 255, 255)
text('YOU WIN', 380, 200); //win
pop();
}
//loose
if (enemyX <= userX) {
push();
noStroke();
textSize(32);
fill(255, 0, 0)
text('YOU LOSE', 380, 200); //win
pop();
}
//dialouge
push();
textSize(15);
fill(255);
noStroke();
rect(30, 10, 190, 30, 10);
ellipse(150, 50, 10, 10)
ellipse(140, 60, 8, 8)
ellipse(128, 65, 6, 6)
fill(0);
text('WALL-E: EVE! HURRY!!', 42, 31);
pop();
//instruction
if (mouseIsPressed) {
push();
textSize(15);
noStroke();
fill(255);
text('CLICK! to rescue EVE', 375, 61);
pop();
} else {
push();
textSize(15);
noStroke();
fill(100);
text('CLICK! to rescue EVE', 375, 61);
pop()
}
//title
push();
textSize(50);
noStroke();
fill(255);
text('WALL-E', 680, 357);
pop();
push();
textSize(10);
noStroke();
fill(255);
text('(ELECTRICITY)', enemyX-28, 315);
pop();
push();
textSize(14);
noStroke();
fill(255);
text('A JOURNEY TO FIND EVE.', 687, 380);
pop()
if (userX <= 85) {
push();
textSize(14);
noStroke();
fill(255);
text('SAFE', userX - 20, 185);
pop();
} else {
push();
textSize(20);
noStroke();
fill(255, 0, 0);
text('DANGER!!!', 400, 36);
pop();
}
push();
stroke(255);
noFill();
strokeWeight(3);
rect(670,310, 205, 80);
pop();
}
function mouseClicked() {
if (mouseClick === 0) {
userX = userX - 5 //movement speed of user charcater
}
}