Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- //VARIABLES GLOBALES
- -- Dimensions de la fenêtre
- w=platform.window:width()
- h=platform.window:height()
- -- Fond
- background = image.new(_R.IMG.background)
- ybackground = -563
- backgroundhighscores = image.new(_R.IMG.backgroundhighscores)
- backgroundmenu = image.new(_R.IMG.backgroundmenu)
- backgroundprejeu = image.new(_R.IMG.backgroundprejeu)
- -- Livreur
- llivreur=10
- hlivreur=15
- xlivreur=w/2-llivreur/2
- ylivreur=h-hlivreur
- jump=false
- jumptimer=0
- passerelle=false
- plateforme=1
- gravite=false
- vies=3
- imglivreurgauche = image.new(_R.IMG.livreurgauche)
- imglivreurdroite = image.new(_R.IMG.livreurdroite)
- directionlivreur = 1
- -- Plateformes
- nbplateformes=15
- hplateformes=10
- wplateformes=w
- xplateformes=0
- yplateformes={}
- yplateformes[1]=h
- for i=2,nbplateformes do
- yplateformes[i]=yplateformes[i-1]-50
- end
- --Obstacles
- nbobstacles=3
- lobstacles=7
- hobstacles=7
- xobstacles={}
- yobstacles={yplateformes[1]-hobstacles,yplateformes[2]-hobstacles,yplateformes[3]-hobstacles}
- deplacementobs={}
- departobstacles={}
- typeobstacle={}
- imgobstacle=0
- obstacle1 = image.new(_R.IMG.obstacle1)
- obstacle2 = image.new(_R.IMG.obstacle2)
- obstacle3 = image.new(_R.IMG.obstacle3)
- obstacle4 = image.new(_R.IMG.obstacle4)
- for i=1,nbobstacles do
- departobstacles[i]=math.random(0,1)
- typeobstacle[i]=math.random(1,4)
- deplacementobs[i]=(math.random(7,11))/10
- if departobstacles[i] == 0 then
- xobstacles[i]=0
- else
- xobstacles[i] = w-lobstacles
- end
- end
- -- Passerelles
- hpasserelles=40
- lpasserelles=10
- xpasserelles={}
- ypasserelles={}
- for i=1,nbplateformes-1 do
- ypasserelles[i]=yplateformes[i+1]+hplateformes
- xpasserelles[i]=math.random(50,w-lpasserelles-50)
- end
- imgpasserelle = image.new(_R.IMG.passerelle)
- --Client
- hclient=25
- lclient=20
- xclient=50
- yclient=yplateformes[nbplateformes]-hclient
- imgclient=image.new(_R.IMG.client)
- --Bonus
- nbbonus=6
- lbonus=10
- xbonus={}
- ybonus={}
- bonus={}
- timerbonusvitesse=0
- bonusimg = 0
- bonusscore = image.new(_R.IMG.bonusscore)
- bonustemps = image.new(_R.IMG.bonustemps)
- bonusvitesse = image.new(_R.IMG.bonuvitesse)
- bonusvie = image.new(_R.IMG.bonusvie)
- for i=1,nbbonus do
- xbonus[i]=math.random(10,w-15)
- ybonus[i]=yplateformes[math.random(1,nbplateformes-1)]-lbonus
- bonus[i]=math.random(1,4)
- end
- -- Prejeu
- texte=1
- phasetexte=0
- phrases1 = {"Vous êtes un livreur de pizza.", "Vous devez livrer une pizza à un client.", "Si vous dépassez le temps", "de livraison imparti,", "le client NE PAYE PAS !"}
- phrases2 = {"Ce client semble particulièrement motivé"," à ne pas payer.","Vous devrez esquiver ses obstacles", "et ramasser des bonus", "pour livrer sa pizza à temps."}
- phrases3 = {"← aller à gauche","→ aller à droite", "↑ monter sur une passerelle", "<espace> sauter", "<echap> pause"}
- hphrases = {55,80,105,130,155}
- wphrases1 = {}
- wphrases2 = {}
- wphrases3 = {}
- -- Gestion des fenêtres
- screen=4
- mselection=1
- gselection=0
- pselection=1
- scrolling=false
- scrolltimer=0
- nbscroll=0
- pause=false
- -- Score/temps
- score=0
- temps=120
- highscore={0,0,0,0,0}
- save={0,0,0,0,0}
- name=""
- nblettres=0
- confnom=false
- namehs={"....","....","....","....","...."}
- namesave={"....","....","....","....","...."}
- -- VARIABLES GLOBALES\\
- -- //GRAPHIQUE
- -- On paint
- function on.paint(gc)
- if screen==0 then -- Ecran menu
- menu(gc)
- elseif screen==1 then -- Ecran jeu
- decors(gc)
- timer.start(0.01)
- elseif screen==2 then -- Ecran game over ou victoire
- gameover(gc)
- elseif screen==3 then -- Ecran scores
- ecranscores(gc)
- elseif screen==4 then
- prejeu(gc) -- Ecran prejeu
- end
- end
- -- Préjeu
- function prejeu(gc)
- gc:drawImage(backgroundprejeu,0,0)
- gc:setColorRGB(255,255,255)
- gc:setFont("sansserif","r",9)
- if phasetexte==0 then
- gc:setFont("sansserif","r",12)
- local wdeja=gc:getStringWidth("Avez-vous déjà joué ?")
- gc:drawString("Avez-vous déjà joué ?",w/2-wdeja/2,h/2-20)
- local style_oui = "r"
- local style_non = "r"
- if pselection == 1 then
- style_oui = "b"
- style_non = "r"
- else
- style_oui = "r"
- style_non = "b"
- end
- gc:setFont("sansserif",style_oui,12)
- local woui=gc:getStringWidth("OUI")
- gc:drawString("OUI",w/2-woui-10,h/2+10)
- gc:setFont("sansserif",style_non,12)
- gc:drawString("NON",w/2+10,h/2+10)
- elseif phasetexte==1 then
- for i=1,texte do
- wphrases1[i]=gc:getStringWidth(phrases1[i])
- gc:drawString(phrases1[i],w/2-wphrases1[i]/2,hphrases[i])
- end
- gc:drawString("↵",w-60,h-40)
- elseif phasetexte==2 then
- for i=1,texte do
- wphrases2[i]=gc:getStringWidth(phrases2[i])
- gc:drawString(phrases2[i],w/2-wphrases2[i]/2,hphrases[i])
- end
- gc:drawString("↵",w-60,h-40)
- elseif phasetexte==3 then
- for i=1,texte do
- wphrases3[i]=gc:getStringWidth(phrases3[i])
- gc:drawString(phrases3[i],w/2-wphrases3[i]/2,hphrases[i])
- end
- gc:drawString("↵",w-60,h-40)
- end
- end
- -- Menu principal
- function menu(gc)
- gc:drawImage(backgroundmenu,0,0)
- local style_jouer = "r"
- local style_scores = "r"
- if mselection == 1 then
- style_jouer = "b"
- style_scores = "r"
- elseif mselection == 2 then
- style_jouer = "r"
- style_scores = "b"
- end
- gc:setFont("sansserif",style_jouer,12)
- local wjouer=gc:getStringWidth("JOUER")
- gc:drawString("JOUER",w/2-wjouer/2,h/2-17)
- gc:setFont("sansserif",style_scores,12)
- local wscores=gc:getStringWidth("SCORES")
- gc:drawString("SCORES",w/2-wscores/2,h/2+17)
- end
- -- Jeu
- function decors(gc)
- -- Fond
- gc:drawImage(background,0,ybackground)
- -- Plateformes
- gc:setColorRGB(200,200,200)
- for i=1,nbplateformes do
- gc:fillRect(xplateformes,yplateformes[i],wplateformes,hplateformes)
- end
- gc:setColorRGB(0,50,200)
- for i=1,nbplateformes-1 do
- gc:drawImage(imgpasserelle,xpasserelles[i],ypasserelles[i])
- end
- -- Bonus
- for i=1,nbbonus do
- if bonus[i]~=0 then
- if bonus[i]==1 then
- bonusimg=bonusscore
- elseif bonus[i]==2 then
- bonusimg=bonustemps
- elseif bonus[i]==3 then
- bonusimg=bonusvitesse
- else
- bonusimg=bonusvie
- end
- gc:drawImage(bonusimg,xbonus[i],ybonus[i])
- end
- end
- --Client
- gc:drawImage(imgclient,xclient,yclient)
- --Livreur
- if directionlivreur == 0 then
- gc:drawImage(imglivreurgauche,xlivreur,ylivreur)
- else
- gc:drawImage(imglivreurdroite,xlivreur,ylivreur)
- end
- --Obstacles
- for i=1,nbobstacles do
- if typeobstacle[i]==1 then
- imgobstacle=obstacle1
- elseif typeobstacle[i]==2 then
- imgobstacle=obstacle2
- elseif typeobstacle[i]==3 then
- imgobstacle=obstacle3
- else
- imgobstacle=obstacle4
- end
- gc:drawImage(imgobstacle,xobstacles[i],yobstacles[i])
- end
- -- Barre en haut
- gc:setColorRGB(20,20,20)
- gc:fillRect(-1,-1,w+2,30)
- gc:setColorRGB(255,255,255)
- gc:drawLine(-1,30,w+1,30)
- gc:setFont("sansserif","r",6)
- local wtemps=gc:getStringWidth("TEMPS : "..math.ceil(temps))
- gc:drawString("TEMPS : "..math.ceil(temps),15,10)
- local wscore=gc:getStringWidth("SCORE : "..math.ceil(score))
- gc:drawString("SCORE : "..math.ceil(score),w-wscore-15,10)
- if deplacementobs[1]==0.75 then
- gc:setColorRGB(255,255,0)
- gc:fillArc(110,13,5,5,0,360)
- end
- if vies==3 then
- gc:setColorRGB(255,0,0)
- gc:fillArc(150,13,5,5,0,360)
- gc:fillArc(160,13,5,5,0,360)
- gc:fillArc(170,13,5,5,0,360)
- elseif vies==2 then
- gc:setColorRGB(255,0,0)
- gc:fillArc(150,13,5,5,0,360)
- gc:fillArc(160,13,5,5,0,360)
- gc:setColorRGB(60,60,60)
- gc:fillArc(170,13,5,5,0,360)
- elseif vies==1 then
- gc:setColorRGB(255,0,0)
- gc:fillArc(150,13,5,5,0,360)
- gc:setColorRGB(60,60,60)
- gc:fillArc(160,13,5,5,0,360)
- gc:fillArc(170,13,5,5,0,360)
- end
- --Pause
- if pause==true then
- gc:setColorRGB(0,0,0)
- gc:fillRect(50,70,w-100,h-140)
- gc:setColorRGB(255,255,255)
- gc:setFont("sansserif","b",50)
- local wpause=gc:getStringWidth("PAUSE")
- gc:drawString("PAUSE",w/2-wpause/2,h/2-30)
- gc:setFont("sansserif","r",8)
- local wapp=gc:getStringWidth("Appuyez sur <entrée> pour reprendre")
- gc:drawString("Appuyez sur <entrée> pour reprendre",w/2-wapp/2,h/2+15)
- end
- end
- -- Game over / Victoire
- function gameover(gc)
- gc:setColorRGB(0,0,0)
- gc:fillRect(-1,-1,w+2,h+2)
- gc:setFont("sansserif","b",20)
- gc:setColorRGB(255,255,255)
- if temps==0 or vies==0 then
- local wgameover=gc:getStringWidth("GAME OVER")
- gc:drawString("GAME OVER",w/2-wgameover/2,50)
- else
- local wgameover=gc:getStringWidth("VICTOIRE")
- gc:drawString("VICTOIRE",w/2-wgameover/2,50)
- end
- gc:setFont("sansserif","r",14)
- local wscore=gc:getStringWidth("SCORE : "..math.ceil(score))
- gc:drawString("SCORE : "..math.ceil(score),w/2-wscore/2,90)
- local style_rejouer = "r"
- local style_scores = "r"
- local style_menu = "r"
- if gselection == 1 then
- style_rejouer = "b"
- style_scores = "r"
- style_menu = "r"
- elseif gselection == 2 then
- style_rejouer = "r"
- style_scores = "b"
- style_menu = "r"
- elseif gselecrion == 3 then
- style_rejouer = "r"
- style_scores = "r"
- style_menu = "b"
- end
- gc:setFont("sansserif","bi",12)
- gc:drawString("NOM : "..name,110,125)
- gc:setFont("sansserif",style_rejouer,12)
- gc:drawString("REJOUER",40,160)
- gc:setFont("sansserif",style_scores,12)
- gc:drawString("SCORES",135,160)
- gc:setFont("sansserif",style_menu,12)
- gc:drawString("MENU",225,160)
- end
- -- High scores
- function ecranscores(gc)
- gc:drawImage(backgroundhighscores,0,0)
- gc:setFont("sansserif","b",13)
- gc:setColorRGB(255,255,255)
- gc:setFont("sansserif","b",8)
- local lapp = gc:getStringWidth("Appuyez sur entrée")
- gc:drawString("Appuyez sur entrée",w/2-lapp/2,h-40)
- local lret = gc:getStringWidth("pour retourner au menu")
- gc:drawString("pour retourner au menu",w/2-lret/2,h-30)
- gc:setColorRGB(255,255,255)
- gc:setFont("sansserif","b",9)
- for i=1,5 do
- local lhighscore = gc:getStringWidth(i..". "..namehs[i].." : "..math.ceil(highscore[i]))
- gc:drawString(i..". "..namehs[i].." : "..math.ceil(highscore[i]),w/2-lhighscore/2,h/5 + i*20)
- end
- end
- -- GRAPHIQUE\\
- -- //TIMER
- function on.timer()
- if screen==1 then
- if pause==false then -- Si on n'est pas en pause
- if scrolling==false then
- -- Tous les tests
- testgravite()
- testvictoire()
- testbonus()
- testcollision()
- -- Gravité
- if gravite==true then
- ylivreur=ylivreur+1
- end
- -- Saut
- if jump==true then
- if jumptimer>0 then
- ylivreur=ylivreur-1
- jumptimer=jumptimer-1
- else
- jump=false
- end
- end
- -- Bonus vitesse
- if timerbonusvitesse>0 then
- timerbonusvitesse=timerbonusvitesse-0.01
- else
- if nbscroll==0 then
- for i=1,nbobstacles do
- deplacementobs[i]=(math.random(7,11))/10
- end
- elseif nbscroll==1 then
- for i=1,nbobstacles do
- deplacementobs[i]=(math.random(11,15))/10
- end
- elseif nbscroll==2 then
- for i=1,nbobstacles do
- deplacementobs[i]=(math.random(15,18))/10
- end
- elseif nbscroll==3 then
- for i=1,nbobstacles do
- deplacementobs[i]=(math.random(18,21))/10
- end
- else
- for i=1,nbobstacles do
- deplacementobs[i]=(math.random(21,23))/10
- end
- end
- end
- -- Temps
- if temps-0.01>0 then
- temps=temps-0.01
- else
- temps=0
- screen=2
- end
- --Obstacles
- for i=1,nbobstacles do
- if departobstacles[i]==0 then
- if xobstacles[i] + deplacementobs[i] < w then
- xobstacles[i]=xobstacles[i] + deplacementobs[i]
- else
- typeobstacle[i]=math.random(1,4)
- xobstacles[i]=0
- end
- else
- if xobstacles[i] - deplacementobs[i] > 0 then
- xobstacles[i]=xobstacles[i] - deplacementobs[i]
- else
- typeobstacle[i]=math.random(1,4)
- xobstacles[i]=w-lobstacles
- end
- end
- end
- -- Scroll
- else
- if yplateformes[plateforme+1]<h-hplateformes then
- ylivreur=ylivreur+2
- yclient=yclient+2
- ybackground=ybackground+2
- for i=1,nbplateformes do
- yplateformes[i]=yplateformes[i]+2
- end
- for i=1,nbplateformes-1 do
- ypasserelles[i]=ypasserelles[i]+2
- end
- for i=1,nbbonus do
- ybonus[i]=ybonus[i]+2
- end
- for i=1,nbobstacles do
- yobstacles[i]=yobstacles[i]+2
- end
- else
- scrolling=false
- -- Placement des obstacles
- for i=1,nbobstacles do
- departobstacles[i]=math.random(0,1)
- typeobstacle[i]=math.random(1,4)
- if departobstacles[i] == 0 then
- xobstacles[i]=0
- else
- xobstacles[i] = w-lobstacles
- end
- end
- if nbscroll==1 then
- yobstacles={yplateformes[4]-hobstacles,yplateformes[5]-hobstacles,yplateformes[6]-hobstacles}
- elseif nbscroll==2 then
- yobstacles={yplateformes[7]-hobstacles,yplateformes[8]-hobstacles,yplateformes[9]-hobstacles}
- elseif nbscroll==3 then
- yobstacles={yplateformes[10]-hobstacles,yplateformes[11]-hobstacles,yplateformes[12]-hobstacles}
- elseif nbscroll==4 then
- yobstacles={yplateformes[13]-hobstacles,yplateformes[14]-hobstacles,yplateformes[15]-hobstacles}
- end
- end
- end
- end
- end
- platform.window:invalidate()
- end
- -- TIMER\\
- -- //TOUCHES
- -- Gauche
- function on.arrowLeft()
- -- Ecran jeu : déplacement du livreur à gauche
- if screen==1 and scrolling==false and pause==false then
- directionlivreur=0
- if xlivreur>0 then
- xlivreur=xlivreur-5
- if passerelle==true then
- passerelle=false
- end
- platform.window:invalidate()
- end
- -- Ecran game over ou victoire : changement de la selection du menu
- elseif screen==2 then
- if confnom==true then
- if gselection==1 then
- gselection=3
- elseif gselection==2 then
- gselection=1
- elseif gselection==3 then
- gselection=2
- end
- end
- -- Ecran préjeu : changement de la selection du menu
- elseif screen==4 then
- if pselection==1 then
- pselection=2
- else
- pselection=1
- end
- end
- platform.window:invalidate()
- end
- -- Haut
- function on.arrowUp()
- -- Ecran menu : changement de la selection du menu
- if screen==0 then
- if mselection == 1 then
- mselection = 2
- else
- mselection = 1
- end
- -- Ecran jeu : montée sur une passerelle
- elseif screen==1 and scrolling==false and pause==false then
- if (plateforme~=0 and plateforme~=15) or passerelle==true then -- si on est sur une plateforme (sauf la dernière) ou une passerelle
- if xlivreur>=xpasserelles[plateforme]-2 and xlivreur<=xpasserelles[plateforme]+2 then -- si on est au niveau d'une passerelle
- -- si on peut encore monter sans dépasser la plateforme
- if ylivreur-5>yplateformes[plateforme+1]-hlivreur then
- passerelle=true
- ylivreur=ylivreur-5
- -- si on arrive à la plateforme
- else
- ylivreur=yplateformes[plateforme+1]-hlivreur
- passerelle=false
- -- Si on arrive à la plateforme en haut de l'écran
- if ylivreur==yplateformes[4]-hlivreur then
- scrolling=true
- nbscroll=1
- for i=1,nbobstacles do
- deplacementobs[i]=(math.random(11,15))/10
- end
- elseif ylivreur==yplateformes[7]-hlivreur then
- scrolling=true
- nbscroll=2
- for i=1,nbobstacles do
- deplacementobs[i]=(math.random(15,18))/10
- end
- elseif ylivreur==yplateformes[10]-hlivreur then
- scrolling=true
- nbscroll=3
- for i=1,nbobstacles do
- deplacementobs[i]=(math.random(18,21))/10
- end
- elseif ylivreur==yplateformes[13]-hlivreur then
- scrolling=true
- nbscroll=4
- for i=1,nbobstacles do
- deplacementobs[i]=(math.random(21,23))/10
- end
- end
- end
- end
- end
- end
- platform.window:invalidate()
- end
- -- Bas
- function on.arrowDown()
- -- Ecran menu : changement de la selection du menu
- if screen==0 then
- if mselection == 1 then
- mselection = 2
- else
- mselection = 1
- end
- end
- platform.window:invalidate()
- end
- -- Droite
- function on.arrowRight()
- -- Ecran jeu : deplacement du livreur vers la droite
- if screen==1 and scrolling==false and pause==false then
- directionlivreur=1
- if xlivreur+10<w then
- xlivreur=xlivreur+5
- if passerelle==true then
- passerelle=false
- end
- end
- -- Ecran game over ou victoire : changement de la selection du menu
- elseif screen==2 then
- if confnom==true then
- if gselection==1 then
- gselection=2
- elseif gselection==2 then
- gselection=3
- elseif gselection==3 then
- gselection=1
- end
- end
- -- Ecran préjeu : changement de la selection du menu
- elseif screen==4 then
- if pselection==1 then
- pselection=2
- else
- pselection=1
- end
- end
- platform.window:invalidate()
- end
- -- Entrée
- function on.enterKey()
- -- Ecran menu : valider la selection
- if screen==0 then
- if mselection == 1 then
- -- ecran jeu
- screen=1
- else
- -- ecran scores
- screen=3
- end
- -- Ecran jeu : sortir de la pause
- elseif screen==1 then
- pause=false
- -- Ecran game over ou victoire : valider la selection
- elseif screen==2 then
- if confnom==false and nblettres==4 then
- gselection=1
- confnom=true
- elseif confnom==true then
- testscores() -- tri des scores
- if gselection==1 then
- -- ecran jeu
- screen=1
- elseif gselection==2 then
- --ecran scores
- screen=3
- else
- -- ecran menu
- screen=0
- end
- reset()
- end
- -- Ecran scores : revenir au menu
- elseif screen==3 then
- screen=0
- -- Ecran prejeu
- elseif screen==4 then
- if pselection==1 then
- screen=0 -- ecran menu
- elseif pselection==2 and phasetexte==0 then
- phasetexte=1
- else
- if phasetexte==1 and texte==2 then
- texte=texte+2
- elseif phasetexte==1 and texte==5 then
- phasetexte=2
- texte=2
- else
- if texte<5 then
- texte=texte+1
- elseif phasetexte<3 then
- phasetexte=phasetexte+1
- texte=1
- else
- screen=0
- end
- end
- end
- end
- platform.window:invalidate()
- end
- -- Echap
- function on.escapeKey()
- -- Ecran jeu : mettre pause
- if screen == 1 then
- pause=true
- end
- platform.window:invalidate()
- end
- -- Autres
- function on.charIn(char)
- -- Ecran jeu
- if screen==1 and scrolling==false and pause==false then
- -- Touche = espace : saut du livreur (si on se trouve sur une plateforme)
- if char==" " and plateforme~=0 and passerelle==false then
- jump=true
- jumptimer=20
- end
- elseif screen==2 then
- if nblettres<4 then
- name=name..char
- nblettres=nblettres+1
- end
- end
- platform.window:invalidate()
- end
- -- TOUCHES\\
- -- //TESTS
- -- Gravité
- function testgravite()
- -- Si pas sur une passerelle
- if passerelle==false then
- plateforme=0
- -- On trouve la plateforme sur laquelle est le livreur
- for i=1,nbplateformes do
- if ylivreur+hlivreur==yplateformes[i] then
- plateforme = i
- end
- end
- end
- -- Si le livreur est sur une plateforme ou une passerelle ou saute
- if plateforme~=0 or jump==true or passerelle==true then
- gravite=false -- gravité en pause
- -- Sinon
- else
- gravite=true -- gravité active
- end
- end
- -- Collision bonus
- function testbonus()
- for i=1,nbbonus do
- if (((xbonus[i]+lbonus>=xlivreur and xbonus[i]+lbonus<=xlivreur+llivreur) or (xbonus[i]<=xlivreur+llivreur and xbonus[i]>=xlivreur)) and ((ybonus[i]>=ylivreur and ybonus[i]<=ylivreur+hlivreur) or (ybonus[i]+lbonus <= ylivreur+hlivreur and ybonus[i]+lbonus >= ylivreur))) and bonus[i]~=0 then
- -- Bonus score
- if bonus[i]==1 then
- score=score+100
- -- Bonus temps
- elseif bonus[i]==2 then
- temps=temps+10
- -- Bonus vitesse
- elseif bonus[i]==3 then
- for j=1,nbobstacles do
- deplacementobs[j]=0.75
- end
- timerbonusvitesse=timerbonusvitesse+6
- -- Bonus vie
- else
- if vies<3 then
- vies=vies+1
- else
- score=score+100
- end
- end
- bonus[i]=0 -- Le bonus a été consommé donc il devient inactif
- end
- end
- end
- -- Victoire
- function testvictoire()
- if screen==1 then
- -- Si le livreur touche le client
- if ((xlivreur<=xclient+lclient and xlivreur>=xclient) or (xlivreur+llivreur<=xclient and xlivreur+llivreur>=xclient)) and plateforme==nbplateformes then
- score=score+temps*10+vies*200 -- calcul du score
- screen=2 -- ecran victoire
- end
- end
- end
- -- Collision obstacles
- function testcollision()
- for i=1,nbobstacles do
- if ((xobstacles[i]+lobstacles>=xlivreur and xobstacles[i]+lobstacles<=xlivreur+llivreur) or (xobstacles[i]<=xlivreur+llivreur and xobstacles[i]>=xlivreur)) and ((yobstacles[i]>=ylivreur and yobstacles[i]<=ylivreur+hlivreur) or (yobstacles[i]+hobstacles <= ylivreur+hlivreur and yobstacles[i]+hobstacles >= ylivreur))then
- vies=vies-1
- if departobstacles[i] == 0 then
- xobstacles[i]=0
- else
- xobstacles[i] = w-lobstacles
- end
- if vies==0 then
- screen=2
- end
- end
- end
- end
- -- Tri des scores
- function testscores()
- for i=1,5 do
- save[i] = highscore[i]
- namesave[i] = namehs[i]
- end
- if score > highscore[1] then
- highscore[1] = score
- namehs[1] = name
- for i=1,4 do
- highscore[i+1] = save[i]
- namehs[i+1] = namesave[i]
- end
- elseif score > highscore[2] then
- highscore[2] = score
- namehs[2] = name
- for i=2,4 do
- highscore[i+1] = save[i]
- namehs[i+1] = namesave[i]
- end
- elseif score > highscore[3] then
- highscore[3] = score
- namehs[3] = name
- for i=3,4 do
- highscore[i+1] = save[i]
- namehs[i+1] = namesave[i]
- end
- elseif score > highscore[4] then
- highscore[4] = score
- namehs[4] = name
- highscore[5] = save[4]
- namehs[5] = namesave[4]
- elseif score > highscore[5] then
- highscore[5] = score
- namehs[5] = name
- end
- end
- -- TESTS\\
- -- //RESET
- function reset()
- --Fond
- ybackground = -563
- -- Livreur
- llivreur=10
- hlivreur=15
- xlivreur=w/2-llivreur/2
- ylivreur=h-hlivreur
- jump=false
- jumptimer=0
- passerelle=false
- plateforme=1
- gravite=false
- vies=3
- directionlivreur = 1
- -- Plateformes
- yplateformes={}
- yplateformes[1]=h
- for i=2,nbplateformes do
- yplateformes[i]=yplateformes[i-1]-50
- end
- --Obstacles
- xobstacles={}
- yobstacles={yplateformes[1]-hobstacles,yplateformes[2]-hobstacles,yplateformes[3]-hobstacles}
- deplacementobs={}
- departobstacles={}
- imgobstacle=0
- typeobstacle={}
- for i=1,nbobstacles do
- departobstacles[i]=math.random(0,1)
- typeobstacle[i]=math.random(1,4)
- deplacementobs[i]=(math.random(7,11))/10
- if departobstacles[i] == 0 then
- xobstacles[i]=0
- else
- xobstacles[i] = w-lobstacles
- end
- end
- -- Passerelles
- xpasserelles={}
- ypasserelles={}
- for i=1,nbplateformes-1 do
- ypasserelles[i]=yplateformes[i+1]+hplateformes
- xpasserelles[i]=math.random(50,w-lpasserelles-50)
- end
- --Bonus
- xbonus={}
- ybonus={}
- bonus={}
- timerbonusvitesse=0
- bonusimg = 0
- for i=1,nbbonus do
- xbonus[i]=math.random(10,w-15)
- ybonus[i]=yplateformes[math.random(1,nbplateformes-1)]-lbonus
- bonus[i]=math.random(1,4)
- end
- --Client
- yclient=yplateformes[nbplateformes]-hclient
- -- Gestion des fenêtres
- scrolling=false
- scrolltimer=0
- nbscroll=0
- pause=false
- mselection=1
- gselection=0
- -- Score/temps
- score=0
- temps=120
- nblettres=0
- name=""
- confnom=false
- end
- -- RESET\\
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement