var PLAY = 1;
var END=0;
var gamestate=PLAY;
var coingroup;
var traingroup;
var path,pathImage;
var jake,jakeImage;
var coin,coinImage;
var train,trainImage;
var leftBoundary,rightBoundary;
var sound;
var score=0;
var restart,restartImage;
var gameover,gameoverImage;
var back,backImage;
function preload(){
pathImage=loadImage("path.png");
jakeImage = loadAnimation("Jake1.png","Jake2.png","jake3.png","jake4.PNG","jake5.png");
coinImage=loadImage("coin.png");
trainImage=loadImage("thomas.png");
restartImage=loadImage("reload.png");
gameoverImage=loadImage("gameover.png")
backImage=loadImage("Cyan.png")
sound=loadSound("Subway.mp3")
}
function setup() {
createCanvas(400, 400);
path=createSprite(200,200)
path.addImage(pathImage)
path.scale=1.2
jake=createSprite(300,300,59,200)
jake.addAnimation("jakerunning",jakeImage)
jake.scale=0.5
leftBoundary=createSprite(0,0,100,800);
leftBoundary.visible = false;
//create right Boundary
rightBoundary=createSprite(410,0,100,800);
rightBoundary.visible = false;
back=createSprite(200,200,25,10) ;
back.addImage(backImage);
back.scale=0.4;
restart=createSprite(200,250,25,10) ;
restart.addImage(restartImage);
restart.scale=0.2;
gameover=createSprite(200,150,25,10) ;
gameover.addImage(gameoverImage);
gameover.scale=0.4
coingroup=new Group ();
traingroup=new Group ();
sound.loop();
}
function draw() {
background(220);
jake.x=World.mouseX
edges= createEdgeSprites();
jake.collide(edges[3]);
jake.collide(leftBoundary);
jake.collide(rightBoundary);
if (gamestate===PLAY){
back.visible=false;
gameover.visible=false;
restart.visible=false;
// movingpath
path.velocityY = 6
if(path.y>600){
path.y=30;
}
spawncoins();
if(traingroup.isTouching(jake)){
jake.visible=false;
sound.stop();
gamestate=END;
}
}
if(jake.isTouching(coingroup)) {
score=score+1
coingroup.destroyEach();
}
if(mousePressedOver(restart)) {
reset();
}
drawSprites();
textSize(19)
fill("white")
text("score:"+score,280,50)
if(gamestate===END){
coingroup.setVelocityYEach(0);
coingroup.destroyEach();
traingroup.setVelocityYEach(0);
traingroup.destroyEach();
back.visible=true;
gameover.visible=true;
restart.visible=true;
}
}
function spawncoins(){
if (frameCount % 200 === 0) {
var coin = createSprite(100,50);
coin.x = Math.round(random(60,320));
coin.addImage(coinImage);
coin.velocityY = 3;
coin.scale=0.4
train=createSprite(100,50)
train.x = Math.round(random(100,200));
train.debug=false;
train.setCollider("circle",0,0,30)
train.addImage(trainImage)
train.velocityY = 3;
train.scale=0.2;
coingroup.add(coin);
traingroup.add(train);
}
}
function reset(){
gamestate=PLAY;
coingroup.destroyEach();
traingroup.destroyEach();
jake.visible=true;
score=0;
}