xxxxxxxxxx
317
let sketch3 =function(p){
let salt,pepper,sugar,fork,knife,plate,maze,egg,cold;
let font;
let timer =20;
let wall1,wall2,wall3,wall4;
let character;
let arrowSize=7;
let friends=[];
let enemy=[];
let salt_,pepper_,trap,fork_,knife_,plate_;
let startTimer = false;
let end= false;
let score=0;
let gameOver=false;
let s;
let counts=0;
let startOver=true;
let button;
let playLose=false;
//soundFormats
let bg,coinPick,trapped,youwin;
p.preload= function(){
salt = p.loadImage("assets/salt.png");
pepper = p.loadImage("assets/pepper.png");
sugar = p.loadImage("assets/sugar.png");
fork = p.loadImage("assets/fork.png");
knife = p.loadImage("assets/knife.png");
plate = p.loadImage("assets/plate.png");
maze = p.loadImage("assets/maze.png");
font = p.loadFont("font/VT323-Regular.ttf");
cold = p.loadImage("assets/temp.png");
p.soundFormats('mp3','wav');
bg = p.loadSound("sound/scene1.mp3");
coinPick= p.loadSound("sound/score.mp3");
trapped = p.loadSound("sound/error.wav");
youwin= p.loadSound("sound/win.mp3");
}
p.setup=function(){
p.createCanvas(400,400);
p.imageMode(p.CENTER);
friends= new p.Group();
enemy =new p.Group();
p.textFont(font,15);
p.frameRate(30);
button =p.createButton("startOver");
button.position(300,400);
//bg.loop();
salt_=p.createSprite(360,330);
salt_.addImage('friend',salt);
salt_.scale=0.5;
friends.add(salt_);
pepper_=p.createSprite(140,190);
pepper_.addImage('friend',pepper);
pepper_.scale=0.5;
friends.add(pepper_);
trap=p.createSprite(314,234);
trap.addImage('enemy',sugar);
trap.scale=0.5;
enemy.add(trap);
fork_=p.createSprite(220,200);
plate_=p.createSprite(144,112);
knife_=p.createSprite(128,338);
egg= p.createSprite(330,40,10,10);
s= p.createSprite(p.width/2,p.height/2);
p.reset();
bg.loop();
bg.play();
bg.setVolume(0.5);
coinPick.rate(2);
}
p.draw=function(){
button.mousePressed(p.reset);
if(!gameOver){
if(score===5&&end){
p.print('win');
p.win();
}else if(score!==5||!end){
p.scene();
}
}else{
p.lose();
}
if(timer===0&&!gameOver){
if(!end||score!==5){
p.timeOut();
}
}
}
p.scene=function (){
p.clear();
p.background("#F17C67");
p.textSize(15);
//instruction
p.text("Press WSAD to move around.Please collect all the staff in 20s.",20,380);
p.text("Mouse hover on the egg to start.",20,390);
p.image(maze,p.width/2,p.height/2,400,400);
p.push();
p.translate(330,40);
p.rotate(p.PI/2);
p.fill(0);
p.triangle(0, arrowSize / 2, 0, -arrowSize / 2, arrowSize, 0);
p.pop();
p.push();
p.translate(60,350);
p.rotate(p.PI/2);
p.fill(0);
p.triangle(0, arrowSize / 2, 0, -arrowSize / 2, arrowSize, 0);
p.pop();
p.drawSprites(friends);
p.drawSprite(egg);
p.drawSprite(trap);
//get object
for(let i =0;i<friends.length;i++){
let objs= friends[i];
objs.onMousePressed=function(){//use overlop function instead but unsolved
if(p.dist(egg.position.x,egg.position.y,objs.position.x,objs.position.y)<30){
this.remove();
p.print('sprite'+true);
coinPick.play();
score+=1;
}
}
}
p.text("Your Score: "+score,320,20);
if(p.frameCount%30===0){
if(timer!=0&&startTimer){
timer-=1;
}
}
if(!startTimer){
timer=20;
}
p.textSize(20);
p.fill(0);
p.text("Count Down: "+timer,20,20);
//character.display();
///Start count down
if(p.dist(p.mouseX,p.mouseY,egg.position.x,egg.position.y)<30){
startTimer =true;
startOver =false;
}
//arrive at End
if(p.dist(egg.position.x,egg.position.y,60,350)<10){
end=true;
p.print('End '+end);
}
egg.overlap(trap,p.fail);
// print('GameOver at collision:'+gameOver);
}
p.fail=function(egg,trap){
gameOver = true;
egg.position.x=330;
egg.position.y=50;
trapped.play();
}
p.lose=function (){
p.clear();
s= p.createSprite(p.width/2,p.height/2);
s.addImage(sugar);
s.scale=2;
salt_.remove();
pepper_.remove();
trap.remove();
plate_.remove();
knife_.remove();
egg.remove();
p.background('#F17C67');
p.drawSprite(s);
p.fill(255);
p.text("Mehhh!! You got the sugar.",100+p.random(-5,5),300+p.random(-5,5));
p.text("Press the button to restart",100,320);
}
p.timeOut=function(){
p.clear();
p.background('#F17C67');
p.image(cold,p.width/2,p.height/2,100,100);
p.fill(255);
p.text("You food is cold.",100+p.random(-5,5),300+p.random(-5,5));
p.text("Press the button to restart",100,320);
// trapped.playMode('sustain');
trapped.play();
trapped.pause(1.0);
}
p.mousePressed=function(){
p.print(p.mouseX,p.mouseY);
// youwin.playMode('restart');
}
p.mouseDragged=function (){
if(p.dist(p.mouseX,p.mouseY,egg.position.x,egg.position.y)<30){
egg.position.x=p.mouseX;
egg.position.y=p.mouseY;
}
if(end&&score ===5&&!gameOver){
youwin.play();
youwin.pause(1.0);
}
}
p.win=function(){
p.clear();
trap.remove();
p.background("#F17C67");
egg.position.x=p.width/2;
egg.position.y=p.height/2;
egg.scale=2;
plate_.position.x=p.width/2;
plate_.position.y=p.height/2;
plate_.scale=5;
// drawSprite(plate_);
p.drawSprite(egg);
p.fill(0);
p.text('Yahh!Enjoy your Breakfast.',100,(p.height)/2+40);
}
p.keyPressed=function() {
if (p.key === 'W') {
egg.position.y-=5;
} else if (p.key === 'S') {
egg.position.y+=5;
}
if (p.key === 'A') {
egg.position.x-=5;
} else if (p.key === 'D') {
egg.position.x+=5;
}
return false; // prevent any default behavior
}
p.reset=function(){
//clear();
startTimer = false;
end= false;
score=0;
gameOver=false;
counts=0;
startOver=true;
salt_.remove();
pepper_.remove();
trap.remove();
plate_.remove();
knife_.remove();
egg.remove();
fork_.remove();
s.remove();
// print('startOver'+startOver);
// print('gameOver'+gameOver);
// // create_Sprites();
salt_=p.createSprite(360,330);
salt_.addImage('friend',salt);
salt_.scale=0.5;
friends.add(salt_);
pepper_=p.createSprite(140,190);
pepper_.addImage('friend',pepper);
pepper_.scale=0.5;
friends.add(pepper_);
trap=p.createSprite(314,234,30,30);
trap.addImage('enemy',sugar);
trap.scale=0.5;
enemy.add(trap);
fork_=p.createSprite(220,200);
fork_.addImage('friend',fork);
fork_.rotation=90;
fork_.scale=0.5;
friends.add(fork_);
plate_=p.createSprite(144,112);
plate_.addImage('friend',plate);
plate_.rotation=90;
plate_.scale=0.3;
friends.add(plate_);
knife_=p.createSprite(128,338);
knife_.addImage('friend',knife);
knife_.rotation=-90;
knife_.scale=0.5;
friends.add(knife_);
//character
egg= p.createSprite(330,40,10,10);
egg.addAnimation('egg','assets/egg5.png','assets/egg7.png');
}
};
new p5(sketch3,window.document.getElementById('container'));
// function startOver(){
// clear();
//
// scene();
// }