-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.min.js
1 lines (1 loc) · 20.9 KB
/
index.min.js
1
let sprPlayer,freeze,playerGrp,enemiesGrp,heartGrp,backgroundGrp,bulletGrp,powerupGrp,meteoriteGrp,etoileIMG,framert,count=0,count_star=0,pause=!1,gameOver=!1,start=!0,settings=!1,playerBulletSpeed=10,mobileMode=!1,score=0,gameOvertxt="",debug=!1,time=0,timesec=0,wave=0,canShoot=!0,tripleDoses=0,permitedShoot=0;var phase1,phase2,phase3,phase4,phase5,phase6,tiny_ship,tiny_ship_img,player_shoot,bullet_explosion,player_death,enemy_death,hit_damage,bounce_sound,game_music,menu_click,restartBtn,startBtn,settingsBtn,goBack,validateSettings,sprAsteroide,doom_slayer,temp_value,effectsVolume,effectSoundTest,backToGame;let gui,gamegui,joystick,s1,s2;var hearts=[];let musicVolume;function outOfScreen(e){e.position.x<0&&(e.position.x=1280),e.position.x>1280&&(e.position.x=0),e.position.y<0&&(e.position.y=600),e.position.y>600&&(e.position.y=0)}function enemyOutOfScreen(e){return e.position.x<0||e.position.x>1280||e.position.y<0||e.position.y>600}function meteoriteOutOfScreen(e){return e.position.y>700}function createEnemy(e,t,a=64,o=64,r=100,s=1){let i=createSprite(e,t,a,o);i.collide(allSprites),i.id=s,i.friction=.1,i.scale=1.2,i.maxSpeed=10,i.depth=100,i.hp=r*(Math.floor(wave/20)+1),i.status=!1,3===s?(i.addImage(loadImage("./img/poulpe.png")),i.maxSpeed=3,i.col=function(e){i.setSpeed(-12),e.activeControl=90,e.setSpeed(-12),bounce_sound.isPlaying()||bounce_sound.play()},i.shoot=function(){for(let e=0;e<8;e++)createBullet(i.position.x,i.position.y,loadImage("./img/fireball_drake.png"),function(){bulletGrp.remove(this),this.addImage(loadImage("./img/explosionbullet.png")),this.setSpeed(0,i.rotation-90),this.scale=2;let e=this;window.setTimeout(function(){e.timout()},50)},!1,3,45*e,150)}):2===s?(i.addImage(loadImage("./img/sprite_dragon.png")),i.col=function(e){this.rm(r),e.rm(20*(Math.floor(wave/20)+1))},i.shoot=function(){let e=45;for(let t=0;t<3;t++)createBullet(i.position.x,i.position.y,loadImage("./img/fireball_drake.png"),function(){bulletGrp.remove(this),this.addImage(loadImage("./img/explosionbullet.png")),this.setSpeed(0,i.rotation-90),this.scale=2;let e=this;window.setTimeout(function(){e.timout()},50)},!1,3,e,150),e+=45}):1===s?(i.addAnimation("tiny-ship",tiny_ship),i.changeAnimation("tiny-ship"),i.scale=.8,i.col=function(e){this.rm(r),e.rm(10*(Math.floor(wave/20)+1))},i.shoot=function(){createBullet(i.position.x,i.position.y,loadImage("./img/fireball_drake.png"),function(){bulletGrp.remove(this),this.addImage(loadImage("./img/explosionbullet.png")),this.setSpeed(0,i.rotation-90),this.scale=2;let e=this;window.setTimeout(function(){e.timout()},50)},!1,3,i.rotation+90,150,10)}):5===s?(i.addImage(loadImage("./img/dent.png")),i.scale=2,i.maxSpeed=20,i.col=function(e){this.rm(1e3*r),gameOvertxt="j'ai une dent contre toi je crois XD",e.lifes=-1,e.rm(r)}):4===s&&(i.collide(allSprites),i.addImage("1",loadImage("./img/boss1.png")),i.addImage("2",loadImage("./img/boss2.png")),i.addImage("3",loadImage("./img/boss3.png")),i.addImage("4",loadImage("./img/boss4.png")),i.scale=2,i.maxSpeed=5,i.col=function(e){e.activeControl=90,i.setSpeed(-12,i.rotation+90),e.setSpeed(-12),bounce_sound.isPlaying()||bounce_sound.play(),e.rm(10*(Math.floor(wave/20)+1))},i.phase=1,i.shoot=function(){createBullet(i.position.x,i.position.y,loadImage("./img/balleboss.png"),function(){bulletGrp.remove(this),this.addImage(loadImage("./img/explosionbullet.png")),this.setSpeed(0,i.rotation-90),this.scale=2;let e=this;window.setTimeout(function(){e.timout()},50)},!1,5,i.rotation+90,300,50)}),i.rm=4==s?function(e){this.hp-=e,this.hp<=0?(enemy_death.play(),this.remove(),score+=1e3,createpowerup(this.position.x,this.position.y,32,32,1,coeur,90,loadImage("img/Coeur1.png"))):this.hp<=500*(Math.floor(wave/20)+1)&&this.phase<4?(this.changeImage("4"),this.phase++):this.hp<=1e3*(Math.floor(wave/20)+1)&&this.phase<3?(this.changeImage("3"),this.phase++):this.hp<=1500*(Math.floor(wave/20)+1)&&this.phase<2&&(this.changeImage("2"),this.phase++)}:function(e){if(this.hp-=e,this.hp<=0){enemy_death.play(),this.remove(),score+=10*s;let e=Math.floor(100*Math.random());e<=4?createpowerup(this.position.x,this.position.y,32,32,.5,coeur,90,loadImage("img/Coeur1.png")):e>=5&&e<=7?createpowerup(this.position.x,this.position.y,32,32,2,()=>{coeurMaudit()},90,loadImage("img/Coeur6.png")):e>=8&&e<=12?createpowerup(this.position.x,this.position.y,64,64,.5,tripleShoot,90,loadImage("img/iconetriple.png")):e>=13&&e<=15?createpowerup(this.position.x,this.position.y,64,64,.5,noShoot,90,loadImage("img/noshoot.png")):e>=16&&e<=20&&createpowerup(this.position.x,this.position.y,64,64,.5,Whey,90,loadImage("img/Whey.png"))}},i.addToGroup(enemiesGrp)}function updateEnemy(){for(let e of enemiesGrp){if(3===e.id)e.status?(e.addSpeed(Math.floor(3*Math.random()),Math.floor(361*Math.random())),count%180==0&&canShoot&&e.shoot()):e.addSpeed(.5,90);else if(2===e.id)e.status?(e.addSpeed(Math.floor(3*Math.random()),Math.floor(361*Math.random())),count%180==0&&canShoot&&e.shoot()):e.addSpeed(.5,90);else if(1===e.id)e.status?(e.rotation=degrees(Math.atan2(sprPlayer.position.y-e.position.y,sprPlayer.position.x-e.position.x))-90,e.setSpeed(Math.floor(3*Math.random()),e.rotation+90),count%120==0&&canShoot&&e.shoot()):e.setSpeed(1,90);else if(5===e.id)e.status?(e.rotation=degrees(Math.atan2(sprPlayer.position.y-e.position.y,sprPlayer.position.x-e.position.x))-90,e.setSpeed(10,e.rotation+90)):e.setSpeed(20,90);else if(4===e.id)if(e.status){let t=90;e.rotation=degrees(Math.atan2(sprPlayer.position.y-e.position.y,sprPlayer.position.x-e.position.x))-90,e.addSpeed(Math.floor(5*Math.random()),e.rotation+90+t),count%60==0&&canShoot&&(e.shoot(),t+=1)}else e.setSpeed(1,90);e.status?outOfScreen(e):e.status=!enemyOutOfScreen(e)}if(0===enemiesGrp.length)if(++wave%20==0)createAllEnemy(1,4);else if(wave%20==10){createAllEnemy(Math.floor(6*Math.random())+4,3)}else if(wave%20==5||wave%20==15){createAllEnemy(Math.floor(6*Math.random())+4,2)}else{let e=Math.floor(5*Math.random())+2;createAllEnemy(e,1),createAllEnemy(e=Math.floor(3*Math.random())+1,2),createAllEnemy(e=Math.floor(2*Math.random()),3)}}function createAllEnemy(e,t){let a=[];for(let o=0;o<e;o++){let e=Math.floor(1236*Math.random());for(;e in a;)e=Math.floor(1236*Math.random());4===t?createEnemy(e,Math.floor(-1e3*Math.random()),45,61,2e3,t):createEnemy(e,Math.floor(-1e3*Math.random()),64,64,100,t)}}function createPlayer(e,t,a,o){(sprPlayer=createSprite(e,t,a,o)).friction=.015,sprPlayer.addImage(phase1),sprPlayer.addImage(phase2),sprPlayer.addImage(phase3),sprPlayer.addImage(phase4),sprPlayer.addImage(phase5),sprPlayer.addImage(phase6),sprPlayer.scale=.8,sprPlayer.maxSpeed=7,sprPlayer.depth=1e3,sprPlayer.hp=100,sprPlayer.lifes=3,sprPlayer.activeControl=0,sprPlayer.inv=-70,sprPlayer.collide(allSprites),sprPlayer.rm=function(e=0){hit_damage.play(),this.inv+30<=count&&(this.hp>0&&(this.hp-=e,this.inv=count),this.lifes>0&&this.hp<=0&&(this.lifes--,this.hp=100,this.inv=count)),this.lifes<=0&&(powerupGrp.removeSprites(),playerGrp.removeSprites(),enemiesGrp.removeSprites(),bulletGrp.removeSprites(),player_death.play(),gameOver=!0,pause=!0)},playerGrp=Group(),sprPlayer.addToGroup(playerGrp)}let shoot=0;function playerUpdate(){tripleDoses>0&&tripleDoses--,permitedShoot>0&&permitedShoot--,sprPlayer.activeControl>0&&sprPlayer.activeControl--,playerGrp.overlap(enemiesGrp,function(e,t){t.col(e)}),shoot>0&&shoot--,1!=keyIsDown(LEFT_ARROW)&&1!=keyIsDown(81)||(sprPlayer.rotation-=6),1!=keyIsDown(RIGHT_ARROW)&&1!=keyIsDown(68)||(sprPlayer.rotation+=6),1==keyIsDown(65)&&0==sprPlayer.activeControl&&sprPlayer.addSpeed(.4,sprPlayer.rotation-180),1==keyIsDown(69)&&0==sprPlayer.activeControl&&sprPlayer.addSpeed(.4,sprPlayer.rotation),1!=keyIsDown(UP_ARROW)&&1!=keyIsDown(90)||0!=sprPlayer.activeControl||sprPlayer.addSpeed(.4,sprPlayer.rotation-90),1!=keyIsDown(DOWN_ARROW)&&1!=keyIsDown(83)||0!=sprPlayer.activeControl||sprPlayer.addSpeed(.4,sprPlayer.rotation+90),1==keyIsDown(32)&&0==shoot&&permitedShoot<=0&&(shoot=10,tripleDoses>0&&(createBullet(sprPlayer.position.x-5,sprPlayer.position.y,loadImage("./img/projectiles.png"),function(){bulletGrp.remove(this),this.addImage(loadImage("./img/explosionbullet.png")),this.setSpeed(0,sprPlayer.rotation-90),this.scale=2,this.speed=1;let e=this;window.setTimeout(function(){e.timout()},50)},!0,playerBulletSpeed,sprPlayer.rotation-135),createBullet(sprPlayer.position.x+5,sprPlayer.position.y,loadImage("./img/projectiles.png"),function(){bulletGrp.remove(this),this.addImage(loadImage("./img/explosionbullet.png")),this.setSpeed(0,sprPlayer.rotation-90),this.scale=2,this.speed=1;let e=this;window.setTimeout(function(){e.timout()},50)},!0,playerBulletSpeed,sprPlayer.rotation-45)),createBullet(sprPlayer.position.x,sprPlayer.position.y,loadImage("./img/projectiles.png"),function(){bulletGrp.remove(this),this.addImage(loadImage("./img/explosionbullet.png")),this.setSpeed(0,sprPlayer.rotation-90),this.scale=2,this.speed=1;let e=this;bullet_explosion.play(),window.setTimeout(function(){e.timout()},50)},!0,playerBulletSpeed),player_shoot.play()),outOfScreen(sprPlayer)}function bulletUpdate(){bulletGrp.toArray().forEach(e=>{e.target?(outOfScreen(e),enemiesGrp.toArray().forEach(t=>{e.collide(t,function(){e.rm(),t.rm(e.dmg)})}),e.time+e.timelife<=count&&e.rm()):(sprPlayer.collide(e,function(){e.rm(),sprPlayer.rm(e.dmg)}),e.time+e.timelife<=count&&e.rm())})}function createBullet(e,t,a,o,r=!0,s=10,i=sprPlayer.rotation-90,n=80,l=20){let p=createSprite(e,t,1,1);p.dmg=l,p.addImage(a),p.rot=i,p.currentSpeed=s,p.setSpeed(p.currentSpeed,p.rot),p.timout=function(){this.remove()},p.target=r,p.rm=o,p.time=count,p.timelife=n,p.addToGroup(bulletGrp)}function Shower(){textSize(50),textAlign(CENTER,CENTER),fill(255,204,0),score+=1e6,gameOvertxt="Il est temps d'aller prendre une douche",sprPlayer.lifes=-1,sprPlayer.rm(100)}function coeur(){3===sprPlayer.lifes?100===sprPlayer.hp?score+=100:sprPlayer.hp=100:sprPlayer.lifes+=1}function coeurMaudit(){sprPlayer.lifes>1?sprPlayer.lifes-=1:(sprPlayer.lifes=-1,sprPlayer.rm(100),score=0,gameOvertxt="Tu as ete maudit, LOSER !!!")}function Whey(){sprPlayer.maxSpeed<12?(sprPlayer.maxSpeed+=1,playerBulletSpeed+=1):100===sprPlayer.hp?score+=50:sprPlayer.hp>50?sprPlayer.hp=100:sprPlayer.hp+=50}function tripleShoot(){tripleDoses=600}function noShoot(){permitedShoot=300}function Tacos(){sprPlayer.hp=1,sprPlayer.lifes=1,gameOvertxt="Tacos, Tacos, Tacos"}function createpowerup(e,t,a,o,r,s,i,n){let l=createSprite(e,t);l.setSpeed(r,i),l.addImage(n),l.oncollide=s,l.rm=function(){this.oncollide(),this.remove()},l.addToGroup(powerupGrp)}function updatePowerup(){powerupGrp.forEach(e=>{e.collide(playerGrp,function(){e.rm()}),enemyOutOfScreen(e)&&e.remove()})}function generatePowerup(){if(count%60==0){let e=Math.floor(1e4*Math.random());5e3===e?createpowerup(Math.floor(1e3*Math.random()+100),0,64,64,.5,()=>{Shower()},90,loadImage("img/Douche.png")):e>=100&&e<=150&&createpowerup(Math.floor(1e3*Math.random()+100),0,64,64,.5,Tacos,90,loadImage("img/Tacos.png"))}}function createHeart(){heartGrp=Group();for(let e=0;e<3;e++){let t=createSprite(200+48*e,25,32,32);t.scale=1.5,t.addToGroup(heartGrp)}}function drawHeart(e,t){if(sprPlayer.lifes-1<t)e.addImage(hearts[5]);else if(sprPlayer.lifes-1==t){let t=6-Math.ceil(sprPlayer.hp/20)-1;e.addImage(hearts[t.toString()])}else e.addImage(hearts[0])}function drawLife(){let e=0;for(let t of heartGrp)drawHeart(t,e),e++}function drawTime(){textSize(50),textAlign(CENTER,CENTER),fill(255,204,0),timesec<10?text("Time : "+time.toString()+" : 0"+timesec.toString(),500,25):text("Time : "+time.toString()+" : "+timesec.toString(),500,25)}function drawScore(){textSize(50),textAlign(CENTER,CENTER),fill(255,204,0),text("Score: "+score.toString()+"pts",850,25)}function drawWave(){textSize(50),textAlign(CENTER,CENTER),fill(255,204,0),text("Wave: "+wave.toString(),1150,25)}function draw_gui(){drawTime(),drawScore(),drawWave(),drawLife()}function cheatCode(){if(keyWentDown(222)){let e,t=prompt("command:");if(null!=t)switch(t.toLocaleLowerCase()){case"lag":createAllEnemy(1e4,1);break;case"mynameisoctopus":createAllEnemy(10,3);break;case"pepito":createMeteorite();break;case"meatball":createMeteorite(loadImage("img/mars.png"));break;case"mae":createMeteorite(loadImage("img/terre.png"));break;case"life":if(e=prompt("nb ? "),e=parseInt(e),isNaN(e)){alert("is not number !!!");break}sprPlayer.lifes=e,sprPlayer.hp=100;break;case"wave":if(e=prompt("nb ? "),e=parseInt(e),isNaN(e)){alert("is not number !!!");break}wave=e-1,enemiesGrp.removeSprites();break;case"douche":createpowerup(200,0,64,64,.5,Shower,90,loadImage("img/Douche.png"));break;case"doomslayer":game_music.stop(),game_music=doom_slayer,temp_value=s1.val,game_music.setVolume(temp_value);break;case"tacos":createpowerup(Math.floor(1e3*Math.random()+100),0,64,64,.5,Tacos,90,loadImage("img/Tacos.png"));break;case"shoot":canShoot=!canShoot;break;case"tripledose":createpowerup(Math.floor(1e3*Math.random()+100),0,64,64,2,tripleShoot,90,loadImage("img/iconetriple.png"));break;case"maudit":createpowerup(Math.floor(1e3*Math.random()+100),0,64,64,2,coeurMaudit,90,loadImage("img/Coeur6.png"));break;case"bigmama":sprPlayer.scale+=1;break;case"whey":createpowerup(Math.floor(1e3*Math.random()+100),0,64,64,.5,Whey,90,loadImage("img/Whey.png"));break;case"noshoot":createpowerup(Math.floor(1e3*Math.random()+100),0,64,64,2,noShoot,90,loadImage("img/noshoot.png"));break;default:alert("invalide command !!!"),createAllEnemy(1,5)}}}function gameUpdate(){count++,cheatCode(),playerUpdate(),start_back(),generateMeteorite(),updateEnemy(),bulletUpdate(),updatePowerup(),generatePowerup()}function preload(){for(let e=1;e<=6;e++)hearts.push(loadImage("./img/Coeur"+e.toString()+".png"));player_death=loadSound("./sounds/player_death.wav"),enemy_death=loadSound("./sounds/enemy_death.wav"),hit_damage=loadSound("./sounds/hit_damage.wav"),player_shoot=loadSound("./sounds/player_shoot.wav"),bullet_explosion=loadSound("./sounds/bullet_explosion.wav"),bounce_sound=loadSound("./sounds/bounce.wav"),game_music=loadSound("./sounds/game_music_space.mp3"),menu_click=loadSound("./sounds/menuSelect.wav"),doom_slayer=loadSound("./sounds/Doom.mp3"),menu_click.setVolume(.2),game_music.setVolume(1),bounce_sound.setVolume(.2),enemy_death.setVolume(.2),hit_damage.setVolume(.2),player_death.setVolume(.2),bullet_explosion.setVolume(.2),player_shoot.setVolume(.2),tiny_ship_img=loadImage("./img/tiny-ship.png"),tiny_ship=loadSpriteSheet("./img/tiny-ship.png",64,64,9),phase1=loadImage("./img/phase1.png"),phase2=loadImage("./img/phase2.png"),phase3=loadImage("./img/phase3.png"),phase4=loadImage("./img/phase4.png"),phase5=loadImage("./img/phase5.png"),phase6=loadImage("./img/phase6.png"),sprAsteroide=loadImage("./img/asteroide.png")}function setup(){window.onclose=game_music.stop(),enemiesGrp=Group(),backgroundGrp=Group(),powerupGrp=Group(),meteoriteGrp=Group(),frameRate(60),createCanvas(1280,600).parent("gameCanvasContainer"),etoileIMG=loadImage("./img/etoiles.png"),createPlayer(500,300,100,200),framert=frameRate(),bulletGrp=Group(),createHeart(),sprPlayer.addAnimation("piou",phase1,phase2,phase3,phase4,phase5,phase6,phase6,phase5,phase4,phase3,phase2,phase1),sprPlayer.changeAnimation("piou"),buttonSetup(),gui=createGui(),gamegui=createGui(),s1=createSlider("Slider",300,170,700,50,0,2),s2=createSlider("Slider",300,270,700,50,0,.5)}function buttonSetup(){(restartBtn=new Clickable).cornerRadius=0,restartBtn.locate(520,460),restartBtn.textScaled=!0,restartBtn.text="RESTART",restartBtn.resize(250,100),restartBtn.color="#000000",restartBtn.textColor="#ffcc00",restartBtn.stroke="#ffcc00",restartBtn.onPress=function(){menu_click.play(),window.location.reload()},(startBtn=new Clickable).cornerRadius=0,startBtn.locate(520,460),startBtn.textScaled=!0,startBtn.text="START",startBtn.resize(250,100),startBtn.color="#000000",startBtn.textColor="#ffcc00",startBtn.stroke="#ffcc00",startBtn.onPress=function(){menu_click.play(),start=!1,settings=!1},(settingsBtn=new Clickable).cornerRadius=0,settingsBtn.locate(520,340),settingsBtn.textScaled=!0,settingsBtn.text="SETTINGS",settingsBtn.resize(250,100),settingsBtn.color="#000000",settingsBtn.textColor="#ffcc00",settingsBtn.stroke="#ffcc00",settingsBtn.onPress=function(){menu_click.play(),start=!1,settings=!0},(effectSoundTest=new Clickable).cornerRadius=0,effectSoundTest.locate(520,340),effectSoundTest.textScaled=!0,effectSoundTest.text="TEST SOUND VOLUME",effectSoundTest.resize(250,100),effectSoundTest.color="#000000",effectSoundTest.textColor="#ffcc00",effectSoundTest.stroke="#ffcc00",effectSoundTest.onPress=function(){menu_click.play()},(goBack=new Clickable).cornerRadius=0,goBack.locate(520,460),goBack.textScaled=!0,goBack.text="MAIN MENU",goBack.resize(250,100),goBack.color="#000000",goBack.textColor="#ffcc00",goBack.stroke="#ffcc00",goBack.onPress=function(){menu_click.play(),start=!0,settings=!1},(backToGame=new Clickable).cornerRadius=0,backToGame.locate(520,340),backToGame.textScaled=!0,backToGame.text="CONTINUE",backToGame.resize(250,100),backToGame.color="#000000",backToGame.textColor="#ffcc00",backToGame.stroke="#ffcc00",backToGame.onPress=function(){menu_click.play,pause=!1,backgroundGrp.toArray().forEach(e=>{e.setSpeed(e.currentSpeed,90)}),bulletGrp.toArray().forEach(e=>{e.setSpeed(e.currentSpeed,e.rot)}),powerupGrp.toArray().forEach(e=>{e.setSpeed(1,90)}),meteoriteGrp.toArray().forEach(e=>{e.setSpeed(2,90)})}}function startMenuDraw(){textSize(50),textAlign(CENTER,CENTER),fill(255,204,0),text("Space ship shooting !!!",640,160),startBtn.draw(),settingsBtn.draw()}function debug_up(){(keyWentDown(187)||keyWentDown(61))&&(debug=!debug),debug&&(count%60==0&&(framert=frameRate()),textSize(10),textAlign(CENTER,CENTER),fill(255,204,0),text("fps : "+Math.floor(framert).toString(),50,10))}function settingsMenuDraw(){s1.draw(),s2.draw(),textSize(20),textAlign(RIGHT,CENTER),fill(255,204,0),text("MUSIC VOLUME",260,200),textSize(20),textAlign(RIGHT,CENTER),fill(255,204,0),text("EFFECTS VOLUME",260,300),effectSoundTest.draw(),(s1.isChanged||s2.isChanged)&&(game_music.setVolume(s1.val),menu_click.setVolume(s2.val),bounce_sound.setVolume(s2.val),enemy_death.setVolume(s2.val),hit_damage.setVolume(s2.val),player_death.setVolume(s2.val),bullet_explosion.setVolume(s2.val),player_shoot.setVolume(s2.val)),goBack.draw()}function draw(){background(0),game_music.isPlaying()||game_music.play(),start?(count++,start_back(),startMenuDraw(),drawSprites(backgroundGrp)):settings?(start_back(),settingsMenuDraw()):(pause||(60==timesec?(time+=1,timesec=0):count%60==0&&0!=count&&(timesec+=1)),keyWentDown(ENTER)&&0==gameOver&&((pause=!pause)?(enemiesGrp.toArray().forEach(e=>{e.setSpeed(0,e.rotation)}),bulletGrp.toArray().forEach(e=>{e.setSpeed(0,0)}),backgroundGrp.toArray().forEach(e=>{e.setSpeed(0,e.rotation)}),powerupGrp.toArray().forEach(e=>{e.setSpeed(0,90)}),meteoriteGrp.toArray().forEach(e=>{e.setSpeed(0,0)})):(backgroundGrp.toArray().forEach(e=>{e.setSpeed(e.currentSpeed,90)}),bulletGrp.toArray().forEach(e=>{e.setSpeed(e.currentSpeed,e.rot)}),powerupGrp.toArray().forEach(e=>{e.setSpeed(1,90)}),meteoriteGrp.toArray().forEach(e=>{e.setSpeed(2,90)}))),gameOver&&(cursor(),keyWentDown(ENTER)&&(game_music.stop(),gameOver=!1,window.location.reload()),count++,game_over(),start_back(),drawSprites(backgroundGrp),restartBtn.draw()),pause?(gameOver||(background(0),textSize(50),textAlign(CENTER,CENTER),fill(255,204,0),text("PAUSE",640,80),s1.draw(),s2.draw(),textSize(20),textAlign(RIGHT,CENTER),fill(255,204,0),text("MUSIC VOLUME",260,200),textSize(20),textAlign(RIGHT,CENTER),fill(255,204,0),text("EFFECTS VOLUME",260,300),backToGame.draw(),restartBtn.draw()),(s1.isChanged||s2.isChanged)&&(game_music.setVolume(s1.val),menu_click.setVolume(s2.val),bounce_sound.setVolume(s2.val),enemy_death.setVolume(s2.val),hit_damage.setVolume(s2.val),player_death.setVolume(s2.val),bullet_explosion.setVolume(s2.val),player_shoot.setVolume(s2.val))):(gameUpdate(),drawSprites(),drawSprites(bulletGrp),drawSprites(enemiesGrp),drawSprites(playerGrp),drawSprites(powerupGrp),drawSprites(meteoriteGrp),draw_gui())),debug_up()}function game_over(){textSize(50),textAlign(CENTER,CENTER),fill(255,204,0),text("GAME OVER",640,80),text(gameOvertxt,640,160),text("Score : "+score.toString(),640,240),timesec<10?text("Time : "+time.toString()+" : 0"+timesec.toString(),640,320):text("Time : "+time.toString()+" : "+timesec.toString(),640,320),text("Wave : "+wave.toString(),640,400)}let star_list=[];function draw_star(){let e=createSprite(Math.floor(1280*Math.random()),-5,1,1);e.addImage(etoileIMG),e.currentSpeed=Math.floor(6*Math.random())+3,e.setSpeed(e.currentSpeed,90),e.rm=function(){e.position.y>600&&this.remove()},star_list.push(e),e.addToGroup(backgroundGrp)}function update_star(){for(let e of star_list)e.rm()}function start_back(){update_star(),count%4==0&&draw_star()}function createMeteorite(e=sprAsteroide){let t=Math.floor(1281*Math.random()),a=createSprite(t,-100,94,89);a.addImage(e),a.scale=1*Math.random()+1,a.setSpeed(2,90),a.rm=function(){this.remove()},a.addToGroup(meteoriteGrp)}function updateMeteorite(){meteoriteGrp.forEach(e=>{e.collide(playerGrp,function(){e.rm(),sprPlayer.rm(100)}),meteoriteOutOfScreen(e)&&e.rm()})}function generateMeteorite(){updateMeteorite(),count%1800==0&&createMeteorite()}window.preload=preload,window.setup=setup,window.draw=draw;