PureBasic

Forums PureBasic
Nous sommes le Ven 06/Déc/2019 3:42

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 22 messages ]  Aller à la page Précédente  1, 2
Auteur Message
 Sujet du message: Re: Flappy
MessagePosté: Mar 21/Fév/2017 10:56 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Kaboom baby !

Code:
EnableExplicit
InitSprite()
InitKeyboard()
Enumeration
  #Flapping
  #Kabooming
  #Attending
EndEnumeration
Structure wall
  x.i
  y1.i
  y2.i
  pt.i
EndStructure
Global  A = 10, B = 24, x = 18, framerate, pushed, window, wall, flappy, rnd, flappyY, event, lasty, GameStep = #Attending, y , score
Global cloud, white, black, cloudloop
Global Dim cloud(2,1)
Global NewList wall.wall()
Declare init()
Declare Kaboom()
cloud(0,0) = 80 : cloud(1,0) = 480 : cloud(2,0) = 880
cloud(0,1) = Random(50) : cloud(1,1) = Random(50) : cloud(2,1) = Random(50)
window = OpenWindow(#PB_Any,0,0,900,500,"Flappy",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(window),0,0,900,500)
flappy = CreateSprite(#PB_Any,50,50,  #PB_Sprite_PixelCollision)
wall =   CreateSprite(#PB_Any,50,400, #PB_Sprite_PixelCollision)
cloud = CreateSprite(#PB_Any,200,130)
white = CreateSprite(#PB_Any,50,50)
black = CreateSprite(#PB_Any,50,50)
StartDrawing(SpriteOutput(flappy))
Circle(25,25,25,$0033CC)
Circle(35,25,5 ,$8899CC)
Circle(45,25,5 ,$8899CC)
StopDrawing()
StartDrawing(SpriteOutput(wall)) : Box(0,0,50,400,$006600) : StopDrawing()
StartDrawing(SpriteOutput(white)) : Circle(25,25,25,$FFFFFF) : StopDrawing()
StartDrawing(SpriteOutput(black)) : Circle(25,25,25,$100000) : StopDrawing()
StartDrawing(SpriteOutput(cloud))
Circle(35,65,35,$FFCCFF)
Circle(80,40,40,$FFCCFF)
Circle(75,95,30,$FFCCFF)
Circle(110,30,30,$FFCCFF)
Circle(130,70,50,$FFCCFF)
Circle(175,80,20,$FFCCFF)
StopDrawing()
init()
framerate = ElapsedMilliseconds()
Repeat
  event = WindowEvent()
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Space) And pushed = 0 : pushed = 1 : EndIf
  Select GameStep
    Case #Flapping
      If pushed = 1 : x = 12 : EndIf
      If ElapsedMilliseconds() >= framerate + 16
        ClearScreen($CC3C3C)
        If x < 25
          x + 1
        EndIf
        y = A * Sin(2 * #PI / B * x)
        flappyY + y
        For cloudloop = 0 To 2
          cloud(cloudloop,0) - 1
          If cloud(cloudloop,0) < -200
            cloud(cloudloop,0) = 980
            cloud(cloudloop,1) = Random(50)
          EndIf
        Next cloudloop
        DisplayTransparentSprite(cloud,cloud(0,0),cloud(0,1))
        RotateSprite(cloud,180,#PB_Absolute)
        DisplayTransparentSprite(cloud,cloud(1,0),cloud(1,1))
        RotateSprite(cloud,0,#PB_Absolute)
        DisplayTransparentSprite(cloud,cloud(2,0),cloud(2,1))
        ForEach wall()
          wall()\x = wall()\x - 7
          If wall()\x < 150 And wall()\pt = 0 : wall()\pt = 1: score + 1 : EndIf
          If wall()\x < -50
            wall()\x = 950
            rnd = -Random(390,110)
            If lasty - rnd < -200 : rnd = lasty + 200 : EndIf
            lasty = rnd
            wall()\y1 = rnd
            wall()\y2 = rnd +550
            wall()\pt = 0
          EndIf
          DisplaySprite(wall,wall()\x,wall()\y1)
          DisplaySprite(wall,wall()\x,wall()\y2)
          DisplayTransparentSprite(flappy,150,flappyY)
          If SpritePixelCollision(flappy,150,flappyY,wall,wall()\x,wall()\y1) Or SpritePixelCollision(flappy,150,flappyY,wall,wall()\x,wall()\y2)
            GameStep = #Kabooming
          EndIf
        Next
        StartDrawing(ScreenOutput()) : DrawingMode(#PB_2DDrawing_Transparent ) : DrawText(10,10,Str(score),$000000) : StopDrawing()       
      EndIf
      StartDrawing(ScreenOutput())
      Box(0,480,900,20,$006633)
      Box(0,475,900,5,$006699)
      StopDrawing()
      FlipBuffers()
    Case #Kabooming
      If ElapsedMilliseconds() >= framerate + 32
        Kaboom() : framerate = ElapsedMilliseconds()
      EndIf
    Case #Attending
      If pushed : GameStep = #Flapping: pushed = 0: score = 0 : EndIf
  EndSelect
  If pushed : pushed = 2 : EndIf
  If KeyboardReleased(#PB_Key_Space) : pushed = 0 : EndIf
  Delay(1)
Until event = #PB_Event_CloseWindow

Procedure init()
  ClearScreen($CC3C3C)
  ClearList(wall())
  AddElement(wall())
  wall()\x = 500
  wall()\y1 = -300
  wall()\y2 = 250

  AddElement(wall())
  wall()\x = 1000
  rnd = -Random(390,110)
  wall()\y1 = rnd
  wall()\y2 = rnd +550
  lasty = rnd
  FlappyY = 250
  StartDrawing(ScreenOutput())
  DrawingMode(#PB_2DDrawing_Transparent)
  DrawText(WindowWidth(window)/2 - TextWidth("Space to Flapp !")/2,250,"Space to Flapp !",$000000)
  DrawText(WindowWidth(window)/2 - TextWidth(" Score : "+Str(score))/2,270," Score : "+Str(score),$000000)
  StopDrawing()
  DisplayTransparentSprite(cloud,cloud(0,0),cloud(0,1))
  RotateSprite(cloud,180,#PB_Absolute)
  DisplayTransparentSprite(cloud,cloud(1,0),cloud(1,1))
  RotateSprite(cloud,0,#PB_Absolute)
  DisplayTransparentSprite(cloud,cloud(2,0),cloud(2,1))
  StartDrawing(ScreenOutput())
  Box(0,480,900,20,$006633)
  Box(0,475,900,5,$006699)
  StopDrawing()
  FlipBuffers()
EndProcedure

Procedure Kaboom()
  Static Kaboom = 15, kaboomstat, flapX = 150
  Protected rnd
  Kaboom - 1
  rnd = Random(20)
  ClearScreen($CC3C3C)
  DisplayTransparentSprite(cloud,cloud(0,0),cloud(0,1))
  RotateSprite(cloud,180,#PB_Absolute)
  DisplayTransparentSprite(cloud,cloud(1,0),cloud(1,1))
  RotateSprite(cloud,0,#PB_Absolute)
  DisplayTransparentSprite(cloud,cloud(2,0),cloud(2,1)) 
  If kaboomstat
    flapX + rnd
    flappyY - rnd
    DisplayTransparentSprite(black,flapX,flappyY)
    ForEach wall()
      DisplaySprite(wall,wall()\x+rnd/2,wall()\y1)
      DisplaySprite(wall,wall()\x+rnd/2,wall()\y2)
    Next
    DisplayTransparentSprite(black,flapX,flappyY)
    kaboomstat = 0
  Else
    flapX - rnd
    flappyY + rnd
    ForEach wall()
      DisplaySprite(wall,wall()\x-rnd/2,wall()\y1)
      DisplaySprite(wall,wall()\x-rnd/2,wall()\y2)
    Next
    DisplayTransparentSprite(white,flapX,flappyY)
    kaboomstat = 1
  EndIf
  StartDrawing(ScreenOutput()) : DrawingMode(#PB_2DDrawing_Transparent ) : DrawText(10,10,Str(score),$000000) : StopDrawing()
  StartDrawing(ScreenOutput())
  Box(0,480,900,20,$006633)
  Box(0,475,900,5,$006699)
  StopDrawing()
  FlipBuffers()
  If Kaboom = 0
    Kaboom = 15
    flapX = 150
    init()
    GameStep = #Attending
  EndIf
EndProcedure


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Flappy
MessagePosté: Mar 21/Fév/2017 11:02 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8785
Plus dure cette version :)
Tu n'aimes pas mon sprite animé ^^

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Flappy
MessagePosté: Mar 21/Fév/2017 11:24 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Ouais j'ai resserrer un peut l'espacement, c'était trop simple.
Pour "ma" version je voulais rester sur du "code only" (pis j'adore les 2 pitis nyeux qu'a rajouté vurvur XD)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Flappy
MessagePosté: Mar 21/Fév/2017 17:16 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8785
Tu devrais proposer 2 ou 3 niveaux de difficultés au démarrage, ainsi tu jouerais juste sur l'espacement et la vitesse ^^ parce que là je le trouve chaud quand même :D

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Flappy
MessagePosté: Mar 21/Fév/2017 18:35 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Code:
EnableExplicit
InitSprite()
InitKeyboard()
Enumeration
  #Flapping
  #Kabooming
  #Attending
EndEnumeration
Structure wall
  x.i
  y1.i
  y2.i
  pt.i
EndStructure
Global  A = 10, B = 24, x = 18, framerate, pushed, window, wall, flappy, rnd, flappyY, event, lasty, GameStep = #Attending, y , score
Global cloud, white, black, cloudloop, space = 595, difficult = 1, speed = 5
Global Dim cloud(2,1)
Global NewList wall.wall()
Declare init()
Declare Kaboom()
cloud(0,0) = 80 : cloud(1,0) = 480 : cloud(2,0) = 880
cloud(0,1) = Random(50) : cloud(1,1) = Random(50) : cloud(2,1) = Random(50)
window = OpenWindow(#PB_Any,0,0,900,500,"Flappy",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(window),0,0,900,500)
flappy = CreateSprite(#PB_Any,50,50,  #PB_Sprite_PixelCollision)
wall =   CreateSprite(#PB_Any,50,400, #PB_Sprite_PixelCollision)
cloud = CreateSprite(#PB_Any,200,130)
white = CreateSprite(#PB_Any,50,50)
black = CreateSprite(#PB_Any,50,50)
StartDrawing(SpriteOutput(flappy))
Circle(25,25,25,$0033CC)
Circle(35,25,5 ,$8899CC)
Circle(45,25,5 ,$8899CC)
StopDrawing()
StartDrawing(SpriteOutput(wall)) : Box(0,0,50,400,$006600) : StopDrawing()
StartDrawing(SpriteOutput(white)) : Circle(25,25,25,$FFFFFF) : StopDrawing()
StartDrawing(SpriteOutput(black)) : Circle(25,25,25,$100000) : StopDrawing()
StartDrawing(SpriteOutput(cloud))
Circle(35,65,35,$FFCCFF)
Circle(80,40,40,$FFCCFF)
Circle(75,95,30,$FFCCFF)
Circle(110,30,30,$FFCCFF)
Circle(130,70,50,$FFCCFF)
Circle(175,80,20,$FFCCFF)
StopDrawing()
init()
framerate = ElapsedMilliseconds()
Repeat
  event = WindowEvent()
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Space) And pushed = 0 : pushed = 1 : EndIf
  Select GameStep
    Case #Flapping
      If pushed = 1 : x = 12 : EndIf
      If ElapsedMilliseconds() >= framerate + 16
        ClearScreen($CC3C3C)
        If x < 25
          x + 1
        EndIf
        y = A * Sin(2 * #PI / B * x)
        flappyY + y
        For cloudloop = 0 To 2
          cloud(cloudloop,0) - 1
          If cloud(cloudloop,0) < -200
            cloud(cloudloop,0) = 980
            cloud(cloudloop,1) = Random(50)
          EndIf
        Next cloudloop
        DisplayTransparentSprite(cloud,cloud(0,0),cloud(0,1))
        RotateSprite(cloud,180,#PB_Absolute)
        DisplayTransparentSprite(cloud,cloud(1,0),cloud(1,1))
        RotateSprite(cloud,0,#PB_Absolute)
        DisplayTransparentSprite(cloud,cloud(2,0),cloud(2,1))
        ForEach wall()
          wall()\x = wall()\x - speed
          If wall()\x < 150 And wall()\pt = 0 : wall()\pt = 1: score + 1 : EndIf
          If wall()\x < -50
            wall()\x = 950
            rnd = -Random(390,110)
            If lasty - rnd < -200 : rnd = lasty + 200 : EndIf
            lasty = rnd
            wall()\y1 = rnd
            wall()\y2 = rnd +space
            wall()\pt = 0
          EndIf
          DisplaySprite(wall,wall()\x,wall()\y1)
          DisplaySprite(wall,wall()\x,wall()\y2)
          DisplayTransparentSprite(flappy,150,flappyY)
          If SpritePixelCollision(flappy,150,flappyY,wall,wall()\x,wall()\y1) Or SpritePixelCollision(flappy,150,flappyY,wall,wall()\x,wall()\y2)
            GameStep = #Kabooming
          EndIf
        Next
        StartDrawing(ScreenOutput()) : DrawingMode(#PB_2DDrawing_Transparent ) : DrawText(10,10,Str(score),$000000) : StopDrawing()       
      EndIf
      StartDrawing(ScreenOutput())
      Box(0,480,900,20,$006633)
      Box(0,475,900,5,$006699)
      StopDrawing()
      FlipBuffers()
    Case #Kabooming
      If ElapsedMilliseconds() >= framerate + 32
        Kaboom() : framerate = ElapsedMilliseconds()
      EndIf
    Case #Attending
      If pushed
        init() : GameStep = #Flapping : pushed = 0 : score = 0
      EndIf
      If KeyboardReleased(#PB_Key_Down) And difficult < 4 : difficult + 1 : space - 20 : speed + 1 : EndIf
      If KeyboardReleased(#PB_Key_Up) And difficult > 1 : difficult - 1 : space + 20 : speed - 1 :EndIf
      ClearScreen($CC3C3C)
      StartDrawing(ScreenOutput())
      DrawingMode(#PB_2DDrawing_Transparent)
      DrawText(WindowWidth(window)/2 - TextWidth("Space to Flapp !")/2,150,"Space to Flapp !",$000000)
      DrawText(WindowWidth(window)/2 - TextWidth(" Score : "+Str(score))/2,170," Score : "+Str(score),$000000)
      DrawText(WindowWidth(window)/2 - TextWidth("Easy as fuck")/2,200,"Easy as fuck",$000000)
      DrawText(WindowWidth(window)/2 - TextWidth("Medium")/2,230,"Medium",$000000)
      DrawText(WindowWidth(window)/2 - TextWidth("Hard as hell")/2,260,"Hard as hell",$000000)
      DrawText(WindowWidth(window)/2 - TextWidth("You Shall not PASS !!")/2,290,"You Shall not PASS !!",$0000FF)
      DrawingMode(#PB_2DDrawing_Outlined)
      Box(WindowWidth(window)/2 - TextWidth("You Shall not PASS !!")/2-5,165+difficult*30,TextWidth("You Shall not PASS !!")+10,TextHeight("P")+10,$00CC00)
      StopDrawing()
      DisplayTransparentSprite(cloud,cloud(0,0),cloud(0,1))
      RotateSprite(cloud,180,#PB_Absolute)
      DisplayTransparentSprite(cloud,cloud(1,0),cloud(1,1))
      RotateSprite(cloud,0,#PB_Absolute)
      DisplayTransparentSprite(cloud,cloud(2,0),cloud(2,1))
      StartDrawing(ScreenOutput())
      Box(0,480,900,20,$006633)
      Box(0,475,900,5,$006699)
      StopDrawing()
      FlipBuffers()     
  EndSelect
  If pushed : pushed = 2 : EndIf
  If KeyboardReleased(#PB_Key_Space) : pushed = 0 : EndIf
  Delay(1)
Until event = #PB_Event_CloseWindow

Procedure init()
 
  ClearList(wall())
  AddElement(wall())
  wall()\x = 500
  wall()\y1 = -300
  wall()\y2 = -300 + space

  AddElement(wall())
  wall()\x = 1000
  rnd = -Random(390,110)
  wall()\y1 = rnd
  wall()\y2 = rnd +space
  lasty = rnd
  FlappyY = 250

EndProcedure

Procedure Kaboom()
  Static Kaboom = 15, kaboomstat, flapX = 150
  Protected rnd
  Kaboom - 1
  rnd = Random(20)
  ClearScreen($CC3C3C)
  DisplayTransparentSprite(cloud,cloud(0,0),cloud(0,1))
  RotateSprite(cloud,180,#PB_Absolute)
  DisplayTransparentSprite(cloud,cloud(1,0),cloud(1,1))
  RotateSprite(cloud,0,#PB_Absolute)
  DisplayTransparentSprite(cloud,cloud(2,0),cloud(2,1))
  If kaboomstat
    flapX + rnd
    flappyY - rnd
    DisplayTransparentSprite(black,flapX,flappyY)
    ForEach wall()
      DisplaySprite(wall,wall()\x+rnd/2,wall()\y1)
      DisplaySprite(wall,wall()\x+rnd/2,wall()\y2)
    Next
    DisplayTransparentSprite(black,flapX,flappyY)
    kaboomstat = 0
  Else
    flapX - rnd
    flappyY + rnd
    ForEach wall()
      DisplaySprite(wall,wall()\x-rnd/2,wall()\y1)
      DisplaySprite(wall,wall()\x-rnd/2,wall()\y2)
    Next
    DisplayTransparentSprite(white,flapX,flappyY)
    kaboomstat = 1
  EndIf
  StartDrawing(ScreenOutput()) : DrawingMode(#PB_2DDrawing_Transparent ) : DrawText(10,10,Str(score),$000000) : StopDrawing()
  StartDrawing(ScreenOutput())
  Box(0,480,900,20,$006633)
  Box(0,475,900,5,$006699)
  StopDrawing()
  FlipBuffers()
  If Kaboom = 0
    Kaboom = 15
    flapX = 150
    ;init()
    GameStep = #Attending
  EndIf
EndProcedure


Un truc du genre ?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Flappy
MessagePosté: Jeu 23/Fév/2017 11:05 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6659
Localisation: Isere
Cool !!! 8)

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Flappy
MessagePosté: Jeu 23/Fév/2017 11:53 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 13/Déc/2015 11:05
Messages: 649
Localisation: Allez, cherche...
C'est de mieux en mieux !! Exellent ! :P :)

_________________
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 22 messages ]  Aller à la page Précédente  1, 2

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye