Untitled

 avatar
unknown
plain_text
a month ago
10 kB
1
Indexable
var pacVel = 5;
var ghostVel = 2;
var change = 3;//aleatorio

var w = 10;
var startCounter = 0;
var soundOnOff= true;
var showOriginalMaze = false;
var gameScale = 0.45;

var maze = createSprite(200,200);
maze.setAnimation("maze");


var treats = createGroup();
var t1 = createSprite(220, 210);
t1.setAnimation("cherry");
treats.add(t1);


var barras = createGroup();
var b1 = createSprite(120, 195, w, 80);
barras.add(b1);
var b2 = createSprite(280, 195, w, 80);
barras.add(b2);
var b3 = createSprite(320, 240, w, 80);
barras.add(b3);
var b4 = createSprite(80, 240, w, 80);
barras.add(b4);

var b5 = createSprite(200, 230, 80, w);
barras.add(b5);
var b6 = createSprite(200, 120, 80, w);
barras.add(b6);
var b7 = createSprite(200, 250, w, 40);
barras.add(b7);
var b8 = createSprite(200, 80, w, 80);
barras.add(b8);
var b9 = createSprite(200, 350, 80, w);
barras.add(b9);
var b10 = createSprite(240, 330, w, 50);
barras.add(b10);
var b11 = createSprite(160, 330, w, 50);
barras.add(b11);
var b12 = createSprite(260, 266, 50, w);
barras.add(b12);
var b13 = createSprite(140, 266, 50, w);
barras.add(b13);
var b14 = createSprite(120, 290, w, 50);
barras.add(b14);
var b15 = createSprite(280, 290, w, 50);
barras.add(b15);

var b16 = createSprite(85, 350, 80, w);
barras.add(b16);
var b17 = createSprite(315, 350, 80, w);
barras.add(b17);
var b18 = createSprite(50, 330, w, 40);
barras.add(b18);
var b19 = createSprite(350, 330, w, 40);
barras.add(b19);

var b20 = createSprite(65, 85, 40, w);
barras.add(b20);
var b21 = createSprite(335, 85, 40, w);
barras.add(b21);
var b22 = createSprite(50, 110, w, 40);
barras.add(b22);
var b23 = createSprite(350, 110, w, 40);
barras.add(b23);


var b24 = createSprite(65, 200, 40,w);
barras.add(b24);
var b25 = createSprite(65, 280, 40,w);
barras.add(b25);
var b26 = createSprite(335, 200, 40,w);
barras.add(b26);
var b27 = createSprite(335, 280, 40,w);
barras.add(b27);

var b28 = createSprite(105, 315, 40,w);
barras.add(b28);
var b29 = createSprite(300, 315, 40,w);
barras.add(b29);

var b30 = createSprite(140, 85, 50,w);
barras.add(b30);
var b31 = createSprite(260, 85, 50,w);
barras.add(b31);

var b32 = createSprite(120, 65, w, 50);
barras.add(b32);
var b32 = createSprite(280, 65, w, 50);
barras.add(b32);

var b33 = createSprite(110, 120, 30,w);
barras.add(b33);
var b34 = createSprite(295, 120, 30,w);
barras.add(b34);
var b35 = createSprite(65, 165, 40, w);
barras.add(b35);
var b36 = createSprite(335, 165, 40, w);
barras.add(b36);
var b36 = createSprite(70, 50, 30, w);
barras.add(b36);
var b37 = createSprite(335, 50, 30, w);
barras.add(b37);
var b38 = createSprite(200, 310, w, 20);
barras.add(b38);
var b39 = createSprite(160, 40, w, 20);
barras.add(b39);
var b40 = createSprite(240, 40, w, 20);
barras.add(b40);
var b41 = createSprite(40, 240, 20, w);
barras.add(b41);
var b42 = createSprite(360, 240, 20, w);
barras.add(b42);

var walls = createGroup();
var w1 = createSprite(200,0,400,10);
walls.add(w1);
var w2 = createSprite(0,80,10,180);
walls.add(w2);
var w2b = createSprite(0,320,10,180);
walls.add(w2b);
var w3 = createSprite(400,80,10,180);
walls.add(w3);
var w3b = createSprite(400,320,10,180);
walls.add(w3b);
var w4 = createSprite(200,400,400,10);
walls.add(w4);

var h1 = createSprite(157,180,5,30);
h1.shapeColor="red";
walls.add(h1);
var h2 = createSprite(243,180,5,30);
h2.shapeColor="red";
walls.add(h2);
var h3 = createSprite(200,193,90,5);
h3.shapeColor="red";
walls.add(h3);
// var h4 = createSprite(165,145,20,5);
// h4.shapeColor="red";
// walls.add(h4);
// var h5 = createSprite(235,145,20,5);
// h5.shapeColor="red";
// walls.add(h5);


var dots = createGroup();
var dot = [];
var count = 0;
for (var i=30; i<=380; i+=35){
  for (var j=30; j<=380; j+=35){
  dot[count] = createSprite(i,j);
  dot[count].setAnimation("dot");
  dots.add(dot[count]);
  count++;
  }
}

var bigDots = createGroup();
var bd1 = createSprite(370,30);
bigDots.add(bd1);
var bd2 = createSprite(30,370);
bigDots.add(bd2);
var bd3 = createSprite(370,370);
bigDots.add(bd3);
var bd4 = createSprite(30,30);
bigDots.add(bd4);
bigDots.setAnimationEach("bigDot");


var lifes = 3;
var life1 = createSprite(150,25);
life1.setAnimation("life");
life1.scale=0.1;
var life2 = createSprite(180,25);
life2.setAnimation("life");
life2.scale=0.1;
var life3 = createSprite(210,25);
life3.setAnimation("life");
life3.scale=0.1;


var pac = createSprite(200, 210);
pac.setAnimation("pacmanR");
pac.scale =gameScale;


var enemies = createGroup();
var p1 = createSprite(170,170);
p1.scale=gameScale;
enemies.add(p1);
var p2 = createSprite(180,170);
p2.scale=gameScale;
enemies.add(p2);
var p3 = createSprite(190,170);
p3.scale=gameScale;
enemies.add(p3);
var p4 = createSprite(200,1700);
p4.scale=gameScale;
enemies.add(p4);

function setGhostsVel(){
enemies.setVelocityYEach(-ghostVel);
p1.velocityX=ghostVel;
p2.velocityX=ghostVel;
p3.velocityX=-ghostVel;
p4.velocityX=-ghostVel;
}
setGhostsVel();

var score = 0;
var framecount = 0;

function resetPosition(char){
  char.x = random(0, 320);
  char.y = random(0, 400);
}

function Win(){
  if (dots.length==0){
    enemies.destroyEach();
    treats.destroyEach();
    pac.rotationSpeed=10;
    textSize(50);
    fill("yellow");
    textAlign(CENTER,CENTER);
    text("YOU WON!",200,200);
  }
}

function moveGhosts(){
  startCounter++;
  if (startCounter%10===0 & startCounter>30){
    var signal = 1;
    if (state=="special") signal = -1;
    
    if(pac.x-p1.x>0)signal*=1;else signal*=-1;
    p1.velocityX=signal*ghostVel+random(-change,change);
    if(pac.y-p1.y>0)signal*=1;else signal*=-1;
    p1.velocityY=signal*ghostVel+random(-change,change);
   
   if(pac.x-p2.x>0)signal*=1;else signal*=-1;
    p2.velocityX=signal*ghostVel+random(-change,change);
    if(pac.y-p2.y>0)signal*=1;else signal*=-1;
    p2.velocityY=signal*ghostVel+random(-change,change);
    
    if(pac.x-p3.x>0)signal*=1;else signal*=-1;
    p3.velocityX=signal*ghostVel+random(-change,change);
    if(pac.y-p3.y>0)signal*=1;else signal*=-1;
    p3.velocityY=signal*ghostVel+random(-change,change);
    
    if(pac.x-p4.x>0)signal*=1;else signal*=-1;
    p4.velocityX=signal*ghostVel+random(-2,2);
    if(pac.y-p4.y>0)signal*=1;else signal*=-1;
    p4.velocityY=signal*ghostVel+random(-2,2);
  
    
    
  }
  
    
  }
  
function moveSides(char){
  if (char.x <= -20){
    char.x = 410;
    char.y = 200;
  }
  else if (char.x >= 420){
    char.x = -20;
    char.y = 200;
  }
}

dots.collide(barras);
dots.collide(walls);

var state = "normal";
var startSpecialState = 0;
function eatBigDot(){
  if (state=="normal"){
  p1.setAnimation("phantom1");
p2.setAnimation("phantom2");
p3.setAnimation("phantom3");
p4.setAnimation("phantom4");


} else{
  enemies.setAnimationEach("blue");
}
  if (pac.isTouching(bigDots)){
    if (pac.isTouching(bd1)) bd1.destroy();
    if (pac.isTouching(bd2)) bd2.destroy();
    if (pac.isTouching(bd3)) bd3.destroy();
    if (pac.isTouching(bd4)) bd4.destroy();
    
    state = "special";
    if(playSound)
      (playSound("sound://category_digital/coin_3.mp3",true))
    startSpecialState = World.seconds;
  }
  if (state=="special" && World.seconds==startSpecialState+10){
    state = "normal";
    stopSound("sound://category_digital/coin_3.mp3")
  }
}



function draw() {
  eatBigDot();  
  background("darkblue");
  
  maze.visible=showOriginalMaze;

   pac.collide(barras);
   pac.collide(walls);
   
   treats.collide(barras);
   treats.collide(walls);
   
   enemies.collide(barras);
   enemies.collide(walls);
   
   
   
   moveGhosts();
   
   if (keyDown("right")){
    pac.setAnimation("pacmanR");
    pac.x = pac.x + pacVel;
  }
  
  if (keyDown("left")){
    pac.setAnimation("pacmanL");
    pac.x = pac.x - pacVel;
  }
  
   if (keyDown("up")){
    pac.setAnimation("pacmanU");
    pac.y = pac.y - pacVel;
  }
  
  if (keyDown("down")){
    pac.setAnimation("pacmanD");
    pac.y = pac.y + pacVel;
  }
  
  moveSides(pac);
  moveSides(p1);
  moveSides(p2);
  moveSides(p3);
  moveSides(p4);
  
  
  if (pac.isTouching(t1)){
    t1.visible=false;
    if(soundOnOff)
      playSound("sound://category_points/vibrant_game_cartoon_musical_bling_1.mp3")
    score+=10;
    if (World.frameCount%100){
      resetPosition(t1);
      t1.visible=true;
    }
  }
  if (World.frameCount%300===0){
    resetPosition(t1);
  }
  
  
  if (pac.isTouching(enemies) && state=="special"){
    if (pac.isTouching(p1)){
      p1.x = 170; p1.y = 170;
      p1.velocityX = ghostVel;
      p1.velocityY = ghostVel;
      score+=20;
    }
    if (pac.isTouching(p2)){
      p2.x = 170; p2.y = 170;
      p2.velocityX = ghostVel;
      p2.velocityY = ghostVel;
      
      score+=20;
    }
    if (pac.isTouching(p3)){
      p3.x = 170; p3.y = 170;
      p3.velocityX = -ghostVel;
      p3.velocityY = ghostVel;
      score+=20;
    }
    if (pac.isTouching(p4)){
      p4.x = 170; p4.y = 170;
      p4.velocityX = -ghostVel;
      p4.velocityY = ghostVel;
      
      score+=20;
    }
    
  }
  
  if (pac.isTouching(enemies) && state=="normal"){
    
    
    pac.setAnimation("dead");
    for (var i=0; i<4; i++){
      pac.nextFrame();
    }
    pac.setAnimation("pacmanR");
    
    
    if (soundOnOff)
      playSound("sound://category_music/8bit_game_over_1.mp3")
    pac.x = 200;
    pac.y = 200;
    p1.x = 170;
    p1.y = 170;
    p2.x = 180;
    p2.y = 170;
    p3.x = 190;
    p3.y = 170;
    p4.x = 200;
    p4.y = 170;
    startCounter = 0;
    setGhostsVel();

    lifes--;
    if (lifes==2) life1.destroy();
    if (lifes==1) life2.destroy();
    if (lifes==0) life3.destroy();
    if (lifes<=0) {
      pac.destroy();
      enemies.destroyEach();
      treats.destroyEach();
    }
  }
  
  if(pac.isTouching(dots)){
  for (var i=0; i<count; i++){
      if(dot[i].isTouching(pac)){
        dot[i].destroy();
        if (soundOnOff)
          (playSound("sound://category_achievements/lighthearted_bonus_objective_6.mp3"))
        score++;
      }
  }
    
  }
  
  
  drawSprites();
  
  textSize(20);
  fill("red");
  text('SCORE: '+score, 10, 30);
  if (lifes<=0){
    textSize(50);
    textAlign(CENTER,CENTER);
    text("YOU LOOSE!",200,200);
  }

    Win();

  framecount = World.frameCount;
  // text(framecount, 200, 20);
 }
Leave a Comment