Mini intro

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Dobro> Tu te rappelles quand on parlait du Next, et je parlais de la couverture d'un stmag sur lequel je l'avais vu la 1ère fois? Bon, je me suis trompé, il n'était pas en photo en couverture d'un STmag (plus moyen de me rappeler sur quel autre mag c'était); mais par contre, il y était en texte :D, sur le N°42!
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

djes a écrit :Dobro> Tu te rappelles quand on parlait du Next, et je parlais de la couverture d'un stmag sur lequel je l'avais vu la 1ère fois? Bon, je me suis trompé, il n'était pas en photo en couverture d'un STmag (plus moyen de me rappeler sur quel autre mag c'était); mais par contre, il y était en texte :D, sur le N°42!
ha oui tu as raison :D

Image
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

quelle dommage il ya pas de tuto pour faire une intro
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

bernard13 a écrit :quelle dommage il ya pas de tuto pour faire une intro
Tu veux faire une intro à quoi?

Si c'est une intro à un de tes programmes, met un écran noir, ce sera suffisant. :mrgreen:
tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

quel dommage, qu' il n' y ait pas de tuto, pour faire un ecran noir!!! :roll:
'j anticipe :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

:lol: :lol: :lol:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

tonton a écrit :quel dommage, qu' il n' y ait pas de tuto, pour faire un ecran noir!!! :roll:
'j anticipe :)
Si il n'y a que ça!

Code : Tout sélectionner

InitSprite()                                    ; Initialise les sprites
InitKeyboard()                                  ; Initialise le clavier

If ExamineDesktops()                            ; Liste les bureaux
  
  Width  = DesktopWidth(0)                      ; Largeur actuelle
  Height = DesktopHeight(0)                     ; Hauteur actuelle
  Depth  = DesktopDepth(0)                      ; Profondeur de couleurs actuelle
  
  Rien$ = "Rien"                                ; Titre de l'application à B13
  
  If OpenScreen(Width, Height, Depth, "Intro")  ; Ouvre l'écran
    
    
    Repeat                                      ; Boucle
      ClearScreen(0)                            ; Efface l'écran
      ExamineKeyboard()                         ; Scanne l'état du clavier
      
      StartDrawing(ScreenOutput())              ; Démarre le dessin dans le buffer
      DrawText(Width/2 - TextWidth(Rien$)/2, Height/2 - TextHeight(Rien$)/2, "Rien", $FFFFFF, $000000) ; Dessine
      StopDrawing()                             ; C'est fini
      
      
      FlipBuffers()                             ; Inverse les buffers
    Until KeyboardPushed(#PB_Key_Escape)        ; On s'en va!!!
  EndIf
EndIf

End                                             ; Adios!
tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

et si on faisait évoluer le programme de Chris petit a petit, :D
chacun ajoute un truc, ca fera un bon tuto pour B13!

je commence 8)

Code : Tout sélectionner

InitSprite()                                    ; Initialise les sprites 
InitKeyboard()                                  ; Initialise le clavier 

depx=4                                          ; deplacement horizontal
depy=4                                          ; deplacement vertical

If ExamineDesktops()                            ; Liste les bureaux 
  
  Width  = DesktopWidth(0)                      ; Largeur actuelle 
  Height = DesktopHeight(0)                     ; Hauteur actuelle 
  Depth  = DesktopDepth(0)                      ; Profondeur de couleurs actuelle 
  
  Rien$ = "MIEUX QUE RIEN"                                ; Titre de l'application à B13 
  
  If OpenScreen(Width, Height, Depth, "Intro")  ; Ouvre l'écran 
    
    
    Repeat                                      ; Boucle 
      ClearScreen(0)                            ; Efface l'écran 
      ExamineKeyboard()                         ; Scanne l'état du clavier 
      
      StartDrawing(ScreenOutput())              ; Démarre le dessin dans le buffer 
      DrawText((Width/2 - TextWidth(Rien$)/2)+a, (Height/2 - TextHeight(Rien$)/2)+b, "MIEUX QUE RIEN", $FFFFFF, $000000) ; Dessine 
      
      a+depx                                     ;on deplace la position du texte sur l horizontal
      b+depy                                     ;on deplace la position du texte sur la vertical
      If (Width/2 - TextWidth(Rien$)/2)+a>Width-TextWidth(Rien$)  ;si le texte depasse la largeure de l' écran 
       depx=-depx                                ;on inverse le pas horizontal en négatif
       EndIf
      If (Width/2 - TextWidth(Rien$)/2)+a<0      ;si le texte  depasse a gauche de l' écran 
       depx=-depx                                ;on inverse le pas horizontal en positif
       EndIf
        
      If (Height/2 - TextHeight(Rien$)/2)+b>Height-TextHeight(Rien$);si le texte depasse la hauteur de l' écran 
       depy=-depy                                 ;on inverse le pas vertical en negatif
       EndIf
      If (Height/2 - TextHeight(Rien$)/2)+b<0    ;si le texte  depasse en base de l' écran 
       depy=-depy                                ;on inverse le pas vertical en positif
       EndIf
       
      
      
      
      StopDrawing()                             ; C'est fini 
      
      
      FlipBuffers()                             ; Inverse les buffers 
    Until KeyboardPushed(#PB_Key_Escape)        ; On s'en va!!! 
  EndIf 
EndIf 

End                                             ; Adios! 
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

merci pour ton Tuto tonton c'est exactement que je voulez car dans l'exemple de Buckethead je comprend pas les pokes
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Oui, c'est cela, le source d'un programme "normal" doit-ête commenté dans la mesure du possible ligne à ligne :)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

bernard13 a écrit :merci pour ton Tuto tonton c'est exactement que je voulez car dans l'exemple de Buckethead je comprend pas les pokes

Ah ben si tu comprends mieux les "pokes" avec ça, c'est que t'es vachement doué!... Y en a pas un seul dans le programme 8O
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ajout d'un sprite ! :D

Code : Tout sélectionner

InitSprite()                                    ; Initialise les sprites
InitKeyboard()                                  ; Initialise le clavier

#sprite=1 ; on donne un numero au sprite

depx=4                                          ; deplacement horizontal
depy=4                                          ; deplacement vertical

If ExamineDesktops()                            ; Liste les bureaux
  
  Width  = DesktopWidth(0)                      ; Largeur actuelle
  Height = DesktopHeight(0)                     ; Hauteur actuelle
  Depth  = DesktopDepth(0)                      ; Profondeur de couleurs actuelle
  
  Rien$ = "MIEUX QUE RIEN"                                ; Titre de l'application à B13
  
  If OpenScreen(Width, Height, Depth, "Intro")  ; Ouvre l'écran
    
    
    CreateSprite(#sprite,32,32) ; on cree un sprite de 32 par 32
    StartDrawing(SpriteOutput(#sprite)) ; on va dessiner dedans !!
    Circle(16,16,16,RGB(0,0,255)) ; un rond bleu 
    StopDrawing() ; voila notre sprite est pret !! :D
    ; on va pouvoir l'apeler par son nom !! (#sprite)
    xsprite_pas=10 ; ceci va determiner le sens du sprite  pour les X et sa vitesse de deplacement
    ysprite_pas=10; ceci va determiner le sens du sprite  pour les Y et sa vitesse de deplacement
    
    
    
    
    Repeat                                      ; Boucle 
      ClearScreen(0)                            ; Efface l'écran
      ExamineKeyboard()                         ; Scanne l'état du clavier
      
      StartDrawing(ScreenOutput())              ; Démarre le dessin dans le buffer
      DrawText((Width/2 - TextWidth(Rien$)/2)+a, (Height/2 - TextHeight(Rien$)/2)+b, "MIEUX QUE RIEN", $FFFFFF, $000000) ; Dessine
      
      a+depx                                     ;on deplace la position du texte sur l horizontal
      b+depy                                     ;on deplace la position du texte sur la vertical
      If (Width/2 - TextWidth(Rien$)/2)+a>Width-TextWidth(Rien$)  ;si le texte depasse la largeure de l' écran
        depx=-depx                                ;on inverse le pas horizontal en négatif
      EndIf
      If (Width/2 - TextWidth(Rien$)/2)+a<0      ;si le texte  depasse a gauche de l' écran
        depx=-depx                                ;on inverse le pas horizontal en positif
      EndIf
      
      If (Height/2 - TextHeight(Rien$)/2)+b>Height-TextHeight(Rien$);si le texte depasse la hauteur de l' écran
        depy=-depy                                 ;on inverse le pas vertical en negatif
      EndIf
      If (Height/2 - TextHeight(Rien$)/2)+b<0    ;si le texte  depasse en base de l' écran
        depy=-depy                                ;on inverse le pas vertical en positif
      EndIf 
      StopDrawing()                             ; C'est fini
      
      
      
      ; on va tester si le sprite va sortir de l'ecran
      ; et fabriquer un rebond par inversion de la coordonée  au  cas ou ...
      
      x_sprite=x_sprite + xsprite_pas ; on lance l'animation de la coordonées X 
      y_sprite=y_sprite + ysprite_pas ; on lance l'animation de la coordonées Y
      
      ; on test les sorties d'ecran
      If  x_sprite>Width-32 Or x_sprite<0  ; si la coordonée X du sprite est superieur a la largeur de l'ecran (sortie a droite) ou plus petit que zero (sortie a gauche)
        ; le "-32" sert a ce que la detection de la sortie se fasse a droite du Sprite 
        xsprite_pas=-xsprite_pas ; on inverse le sens des x , ce qui aura pour consequence de faire aller le Sprite dans l'autre sens des X
        Beep_(100,20) ; fait un bruit
        EndIf
      If  y_sprite>Height-32 Or y_sprite<0  ; si la coordonée Y du sprite est superieur a la lhauteur de l'ecran (sortie en bas) ou plus petit que zero (sortie en haut)
       ; le "-32" sert a ce que la detection de la sortie se fasse au dessous du Sprite 
        ysprite_pas=-ysprite_pas ; on inverse le sens des Y , ce qui aura pour consequence de faire aller le Sprite dans l'autre sens des Y
      Beep_(100,20); fait un bruit
        EndIf
      
      DisplaySprite(#sprite,x_sprite,y_sprite) ; on affiche le Sprite aux coordonées
      
      
      
      
      FlipBuffers()                             ; Inverse les buffers
    Until KeyboardPushed(#PB_Key_Escape)        ; On s'en va!!!
  EndIf
EndIf

End                                             ; Adios! 


tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

j ajoute un simulateur d' antenne cassé :D

Code : Tout sélectionner


InitSprite()                                    ; Initialise les sprites 
InitKeyboard()                                  ; Initialise le clavier 

#sprite=1 ; on donne un numero au sprite 

depx=4                                          ; deplacement horizontal 
depy=4                                          ; deplacement vertical 
 etx=0
 ety=0
 

If ExamineDesktops()                            ; Liste les bureaux 
  
  Width  = DesktopWidth(0)                      ; Largeur actuelle 
  Height = DesktopHeight(0)                     ; Hauteur actuelle 
  Depth  = DesktopDepth(0)                      ; Profondeur de couleurs actuelle 
  
  Rien$ = "MIEUX QUE RIEN"                                ; Titre de l'application à B13 
  
  If OpenScreen(Width, Height, Depth, "Intro")  ; Ouvre l'écran 
    
    
    CreateSprite(#sprite,32,32) ; on cree un sprite de 32 par 32 
    StartDrawing(SpriteOutput(#sprite)) ; on va dessiner dedans !! 
    Circle(16,16,16,RGB(0,0,255)) ; un rond bleu 
    StopDrawing() ; voila notre sprite est pret !! :D 
    ; on va pouvoir l'apeler par son nom !! (#sprite) 
    xsprite_pas=10 ; ceci va determiner le sens du sprite  pour les X et sa vitesse de deplacement 
    ysprite_pas=10; ceci va determiner le sens du sprite  pour les Y et sa vitesse de deplacement 
    
    
    
    
    Repeat                                      ; Boucle 
      ClearScreen(0)                            ; Efface l'écran 
      ExamineKeyboard()                         ; Scanne l'état du clavier 
      
      StartDrawing(ScreenOutput())              ; Démarre le dessin dans le buffer 
      
      

      
      
      
      ;--------------- simulateur d'antenne cassée --------------------
    recep +20         ;pas de la figne de synchro
    If recep>Height-4   ;il elle est en bas 
    recep =2          ;on la remet en haut
    EndIf
    LineXY(0,recep,Width,recep,RGB(110,110,110))    ;lignes synchro 
    LineXY(0,recep-1,Width,recep-1,RGB(90,90,90))   
    LineXY(0,recep+1,Width,recep+1,RGB(90,90,90))
    LineXY(0,recep-2,Width,recep-2,RGB(70,70,70))
    LineXY(0,recep+2,Width,recep+3,RGB(70,70,70))

    For etoile =0 To 30000             ;nombre de fourmis
    etx=Random(Width-3)+1                   ;position aleatoire des fourmis en coordonné x
    ety=Random(Height-3)+1                  ;position aleatoire des fourmis en coordonné y
    Plot (etx,ety,RGB(255,255,255))     ;plusieur "plot" pour donner du relief a la foumis
    Plot (etx+1,ety,RGB(230,230,230))
    Plot (etx-1,ety,RGB(230,230,230))
    Plot (etx,ety+1,RGB(230,230,230))
    Plot (etx,ety-1,RGB(230,230,230))
    Plot (etx+1,ety+1,RGB(150,150,150))
    Plot (etx-1,ety-1,RGB(150,150,150))
    Plot (etx-1,ety+1,RGB(150,150,150))
    Plot (etx+1,ety-1,RGB(150,150,150))
    Next
    LineXY(0,ety,Width,ety,RGB(150,150,150))  ;ligne horizontal parasite
    LineXY(0,ety-1,Width,ety-1,RGB(120,120,120))
    LineXY(0,ety+1,Width,ety+1,RGB(120,120,120))
       ;---------  fin du simulateur d antenne cassée ------------------
      
      
      DrawText((Width/2 - TextWidth(Rien$)/2)+a, (Height/2 - TextHeight(Rien$)/2)+b, "MIEUX QUE RIEN", $FFFFFF, $000000) ; Dessine 
      
      a+depx                                     ;on deplace la position du texte sur l horizontal 
      b+depy                                     ;on deplace la position du texte sur la vertical 
      If (Width/2 - TextWidth(Rien$)/2)+a>Width-TextWidth(Rien$)  ;si le texte depasse la largeure de l' écran 
        depx=-depx                                ;on inverse le pas horizontal en négatif 
      EndIf 
      If (Width/2 - TextWidth(Rien$)/2)+a<0      ;si le texte  depasse a gauche de l' écran 
        depx=-depx                                ;on inverse le pas horizontal en positif 
      EndIf 
      
      If (Height/2 - TextHeight(Rien$)/2)+b>Height-TextHeight(Rien$);si le texte depasse la hauteur de l' écran 
        depy=-depy                                 ;on inverse le pas vertical en negatif 
      EndIf 
      If (Height/2 - TextHeight(Rien$)/2)+b<0    ;si le texte  depasse en base de l' écran 
        depy=-depy                                ;on inverse le pas vertical en positif 
      EndIf 
     
      StopDrawing()                             ; C'est fini 
      
      
      
      ; on va tester si le sprite va sortir de l'ecran 
      ; et fabriquer un rebond par inversion de la coordonée  au  cas ou ... 
      
      x_sprite=x_sprite + xsprite_pas ; on lance l'animation de la coordonées X 
      y_sprite=y_sprite + ysprite_pas ; on lance l'animation de la coordonées Y 
      
      ; on test les sorties d'ecran 
      If  x_sprite>Width-32 Or x_sprite<0  ; si la coordonée X du sprite est superieur a la largeur de l'ecran (sortie a droite) ou plus petit que zero (sortie a gauche) 
        ; le "-32" sert a ce que la detection de la sortie se fasse a droite du Sprite 
        xsprite_pas=-xsprite_pas ; on inverse le sens des x , ce qui aura pour consequence de faire aller le Sprite dans l'autre sens des X 
        Beep_(100,20) ; fait un bruit 
        EndIf 
      If  y_sprite>Height-32 Or y_sprite<0  ; si la coordonée Y du sprite est superieur a la lhauteur de l'ecran (sortie en bas) ou plus petit que zero (sortie en haut) 
       ; le "-32" sert a ce que la detection de la sortie se fasse au dessous du Sprite 
        ysprite_pas=-ysprite_pas ; on inverse le sens des Y , ce qui aura pour consequence de faire aller le Sprite dans l'autre sens des Y 
      Beep_(100,20); fait un bruit 
        EndIf 
      
      DisplaySprite(#sprite,x_sprite,y_sprite) ; on affiche le Sprite aux coordonées 
      
    
      
      
      FlipBuffers()                             ; Inverse les buffers 
    Until KeyboardPushed(#PB_Key_Escape)        ; On s'en va!!! 
  EndIf 
EndIf 



End                                             ; Adios! 
 
Dernière modification par tonton le sam. 06/oct./2007 16:01, modifié 1 fois.
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

y a un "pet" ligne 56/57, le plot n'est pas dans sa zone de traçage permise :)
tonton
Messages : 315
Inscription : mar. 26/avr./2005 15:19

Message par tonton »

Frenchy Pilou a écrit :y a un "pet" ligne 56/57, le plot n'est pas dans sa zone de traçage permise :)
corrigé, mais faut pas utiliser le debugger, ca rame trop :wink:
ca va etre une tuerie cette demo :D
Répondre