Untitled
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