Voici comment rendre vos sprites plus attirants

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Voici comment rendre vos sprites plus attirants

Message par Oliv »

Hum !! :P

Code : Tout sélectionner

; connerie codé par Oliv d'après celle de Dobro

#dobro =1 
#Police =1 
#Sprite =1 




Structure sprite 
  x.l 
  y.l 
  sensx.l 
  sensy.l 
EndStructure 
Dim sprite.sprite(1) 

Structure Decale
  Sens.l
  Actif.l
EndStructure
Decale.Decale


; *********************************** 
Resultat = InitSprite () 
FontID = LoadFont ( #Police , "arial" , 18, #PB_Font_Bold ) 
EcranX = GetSystemMetrics_ ( #SM_CXSCREEN ): ;=largeur de l'ecran 
EcranY = GetSystemMetrics_ ( #SM_CYSCREEN ): ;=hauteur de l'ecran 
   WindowID = OpenWindow (1, 0, 0,320, 200, #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello" ) 
  Result = OpenWindowedScreen ( WindowID (1) ,0,0, 320, 200, 1, 0,0) 
   
   ; creation d'un Sprite 
   CreateSprite (1, 64, 64) 
   StartDrawing ( SpriteOutput (1) ) ; on dessine dedans 
   Circle (32, 32, 32 , RGB ($FF,$FF,$0)) 
   StopDrawing () 
   
   
  Resultat = InitMouse () 
  sprite(1)\x=160 
  sprite(1)\y=100 
  sprite(1)\sensx=2 
  sprite(1)\sensy=2 
   
   Repeat 
     ExamineMouse () 
     WindowEvent () 
     Delay (2) 
     
     If MouseButton (2) 
       End 
     EndIf 
     
    sprite(1)\x=sprite(1)\x+sprite(1)\sensx 
    sprite(1)\y=sprite(1)\y+sprite(1)\sensy 
     If sprite(1)\x<0 
      sprite(1)\sensx=-sprite(1)\sensx 
       Decale\Sens = 1
       Decale\Actif = 0  
       Beep_ (100,50)
     EndIf 
     If sprite(1)\x>320-64 
      sprite(1)\sensx=-sprite(1)\sensx 
       Decale\Sens = 2
       Decale\Actif = 0 
       Beep_ (100,50) 
     EndIf 
     If sprite(1)\y>200-64 
       sprite(1)\sensy=-sprite(1)\sensy 
       Decale\Sens = 3
       Decale\Actif = 0 
       Beep_ (80,50) 
     EndIf 
     If sprite(1)\y<0 
      sprite(1)\sensy=-sprite(1)\sensy 
       Decale\Sens = 4
       Decale\Actif = 0 
       Beep_ (80,50) 
     EndIf 
     
     DisplaySprite (1, sprite(1)\x, sprite(1)\y) 
     
     ; Decale la fenêtre
     If Decale\Actif < 10
      Select Decale\sens
        Case 1
          xwin = WindowX()
          ywin = WindowY()
          MoveWindow (xwin + 1,ywin) 
          Decale\Actif + 1
        Case 2
          xwin = WindowX()
          ywin = WindowY()
          MoveWindow ( xwin - 1,ywin) 
          Decale\Actif + 1
        Case 3
          xwin = WindowX()
          ywin = WindowY()
          MoveWindow (xwin,ywin - 1) 
          Decale\Actif + 1
        Case 4
          xwin = WindowX()
          ywin = WindowY()
          MoveWindow ( xwin,ywin + 1) 
          Decale\Actif + 1
      EndSelect
     EndIf
     
     FlipBuffers (): ; affiche l'ecran 
     ClearScreen (0, 0, 0) : ;efface l'ecran
     
   Until Event= #PB_Event_CloseWindow 
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

:lol: :lol: :lol: :lol: J'adore !! :lol: :lol: :lol: :lol:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Le scintillement est agaçant , j'ai ajouté ça

Code : Tout sélectionner

  While WindowEvent() : Wend
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Le scintillement est agaçant , j'ai ajouté ça
bien vu ! :D
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

comtois a écrit :Le scintillement est agaçant , j'ai ajouté ça

Code : Tout sélectionner

  While WindowEvent() : Wend
Pas mal, j'avais pensé mettre en blanc mais ça changeait trop du code de Dobro
Répondre