Big Bang

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Big Bang

Message par raven »

Bonjour à tous.

j'ai tenté de reproduire l'effet du Bing Bang.
c'est pas très bien fait,mais c'est un ensemble globale de ce que je voulait faire:
code+archive

Code : Tout sélectionner

;***********************************************
;Titre  : big_bang
;Auteur  : Raven
;Date  :30/09/2014
;Heure  :22:02:53
;Version Purebasic :  PureBasic 5.23 LTS (Windows - x86)
;Version de l'editeur :EPB V2.58
; Libairies necessaire : Aucune 
;***********************************************

;----------------------------------------------------
; tests d'initialisation de l'environnement
;-----------------------------------------------------

InitSprite()
InitSound()
InitKeyboard()
UsePNGImageDecoder()
UseJPEGImageDecoder()
UseOGGSoundDecoder()

;-------  resolution d'ecran  ------

If OpenScreen(1024,768,32,"Big Bang") = 0
   MessageBox_ (0,"Impossible d'ouvrir un écran 1024x768x32@75hz", "ERREUR", #MB_ICONINFORMATION|#MB_OK)  :End 
EndIf

enumeration
   #font
EndEnumeration

enumeration
   #son_explosion
endenumeration

enumeration
   #galaxy
   #explosion
EndEnumeration
;-Chargement des medias
LoadFont(#font,"Cooper Black",14,#PB_Font_HighQuality )
CatchSprite(#galaxy,?galaxy,#PB_Sprite_AlphaBlending)
CatchSprite (#explosion, ?anim_explosion,#PB_Sprite_BlendSourceAlpha)

longueur_du_son=?explosion_fin-?explosion
CatchSound( #son_explosion,?explosion,longueur_du_son)

;-variables
global explosion,explosion_posx,explosion_posy,explosion_image

Amplifi.f=0.0
vitesse.f=1.0
explosion_posx=0
explosion_posy=-150
galaxie_posx = 480
galaxie_posy = 385

spritequality(1)
;-boucle principale
Repeat
   
   ExamineKeyboard()
   ClearScreen(RGB(0,0,0))
   
   SpriteBlendingMode(#PB_Sprite_BlendSourceAlpha, #PB_Sprite_BlendSourceAlpha)
   TransparentSpriteColor(#explosion,rgb(0,0,0))
   
   If KeyboardReleased(#PB_Key_space)
      If Paused = #False
         Paused = #True
         playsound(#son_explosion,son_explosion)
         Else
         Paused = #False
         galaxie=#True
      EndIf
   EndIf
   
   If Paused = #False
      ClearScreen(RGB(0,0,0))
      galaxie=  #False
      explosion_image=0
      gosub galaxie2   
      Else
      ClearScreen(RGB(0,0,0))
      galaxie=#True
   EndIf
   
   if galaxie = #True
      
      if explosion_image=26:explosion_image=26:endif
      DisplayTransparentSprite(#explosion,explosion_posx,explosion_posy)
      ClipSprite(#explosion,explosion_image*129,0,129,350)
      zoomsprite(#explosion,1000,1000)
      
      explosion + 1
      If explosion =5
         explosion_image + 1
         explosion = 0
         Else
         gosub galaxie
      EndIf
   endif
   
   if galaxie2 = #True
      gosub galaxie2
      galaxie=#False
   EndIf
   
   ;--- fps ----
   If FPST < ElapsedMilliseconds()
      FPST = ElapsedMilliseconds()+1000
      fps = FPSC
      FPSC=0
   EndIf
   FPSC+1
   ;--------------------------------------------------------------
   ;------------   affichage du menu     ---------------------
   ;--------------------------------------------------------------
   
   If StartDrawing(ScreenOutput())
      If KeyboardReleased( #PB_Key_Tab)
         If affiche_menu = #True
            affiche_menu = #False
            Else
            affiche_menu = #True
         EndIf
      EndIf
      DrawingMode(#PB_2DDrawing_Transparent)
      If affiche_menu = #False
         DrawingFont(FontID(#font))
         DrawText(20,20,"FPS: "+Str(fps),RGB(50,255,150))
         DrawText(20,50,"Big Bang",RGB(255,255,255))
         drawtext(20,80,"Touche espace ON/OFF")
         Else
      EndIf
      StopDrawing()
   EndIf 
   
   FlipBuffers()
   
Until KeyboardPushed(#PB_Key_Escape) 
FreeSprite(#galaxy)
freesound(#son_explosion)
CloseScreen()

End

;------Sous Programme--------
galaxie:

ExamineKeyboard()
ClearScreen(RGB(0,0,0))
SpriteBlendingMode(#PB_Sprite_BlendSourceAlpha, #PB_Sprite_BlendSourceAlpha)

For i =0 To 1024
   TransparentSpriteColor(#galaxy,#PB_Sprite_BlendSourceAlpha)
   DisplayTransparentSprite(#galaxy,galaxie_posx+i*Cos(i*1+Amplifi),galaxie_posy+i*Sin(i*1+Amplifi+Sinh(i*1/vitesse)/160+160))
   ZoomSprite(#galaxy,35,35)
   Amplifi + 0.000005
   vitesse+0.0005
Next i

Return

galaxie2:
ExamineKeyboard()
ClearScreen(rgb(0,0,0))

For i =0 To 1
   DisplayTransparentSprite(#galaxy,galaxie_posx+i*Cos(i*1+Amplifi),galaxie_posy+i*Sin(i*1+Amplifi+Sinh(i*1/vitesse)/160+160))
   ZoomSprite(#galaxy,35,35)
   RotateSprite(#galaxy,amplifi+50,vitesse+50)
   Amplifi + 0.000005
   vitesse+0.0005
next i

return
;-----Data Section------
DataSection
   explosion:
   IncludeBinary "media\explosion.ogg"
   explosion_fin:
   
   galaxy:
   IncludeBinary "media\star1.bmp"
   anim_explosion:
   IncludeBinary "media\explosion2.png"
EndDataSection
; Epb
edit:version modifié
Dernière modification par raven le mer. 01/oct./2014 0:36, modifié 2 fois.
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Big Bang

Message par Ar-S »

Ton lien Dropbox est HS chez moi.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: Big Bang

Message par raven »

corrigé
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Big Bang

Message par Ar-S »

Ok c'est jolie mais j'ai plein de "traits" parasites sur pas mal d'étoiles.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Big Bang

Message par MetalOS »

Chez moi ca fonctionne très bien sur Mac.
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: Big Bang

Message par raven »

merci pour le test,j'ai modifié le code au dessus
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Répondre