Effet de nuit

Programmation avancée de jeux en PureBasic
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Effet de nuit

Message par scaraber »

Bonjour,
Je cherche un moyen de faire un effet "nuit", j'ai essayer avec un DisplayRGBFilter(), mais sa lag beacoup trop, quelqu'un a t-il une idée de comment faire ?
Merci d'avance
a+
Scaraber
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

tu veux dire assombrir ton rendu ? peut être avec une image noire (ou bleue foncé) avec de l'alpha qui fait toute la fenêtre.
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

oui c'est sa
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

Je rencontre des probleme sur l'utilisation de DisplayAlphaSprite, sa ne change rien quil saffiche ou pas, quql'un a t-il un ptit code ?
a+
Scaraber
Anonyme

Message par Anonyme »

scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

Merci mais je cherche pas a changer l'intensiter d'un sprite 3D mais de tout l'ecran en mode fentrer ou en full screen ...
Anonyme

Message par Anonyme »

Bah réfléchis 2 secondes, tu prends un sprite 3D noir de la taille de ton écran, tu joues avec l'apha pour simuler "la nuit" , et bien sur tu l'affiches en dernier.
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

ha ouai javait pas vue sa comme sa *est crever*
Je vais tester
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

Salut
C'est bon sa marche, Je charge un sprite, bleu foncé, et je le met en sprite3D avec une transparence de 170 et sa rend bien ..
Merci Cpl.Bator
A++
Scaraber
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

Bonsoir,
Je cherche a faire maintenant un effet de lumiere quand il fait nuit(un cercle) j'ai essayer de faire une image avec un cecle blanc en degrader dedans, mais sa le fait oas trop, on voit les contour du sprite ...
Quelqu'un a-til une idée?
a+
Scaraber
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

utilises un PNG qui contient déjà la transparence
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

ok, je vais voir sa je ne savait pas que purebasic gerait la transparence des png ...
++
Scaraber
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

Salut
La methode des sprite 3D ne marche pas vraiment bien
J'ai essayer ceci pour pouvoir ensuite choisir ou j'eclairci et ou je n'eclairci pas, mais sa prend bcp trop de temps a faire generer la nouvell image (20 sec environ), Quelqu'un a-t-il une idée ?

Code : Tout sélectionner

     StartDrawing(ScreenOutput())
      For x=0 To 639
        For y=0 To 479
          Couleur=Point(x,y)
          Rouge=Red(Couleur)
          Vert=Green(Couleur)
          Bleu=Blue(Couleur)
          If Rouge<80
            Rouge=0
          Else
            Rouge-80
          EndIf
          If Vert<80
            Vert=0
          Else
            Vert-80
          EndIf
          If Bleu<20
            Bleu=0
          Else
            Bleu-20
          EndIf
          Plot(x,y,RGB(Rouge,Vert,Bleu))
        Next
        Debug Str(x)+"/640"
      Next
    StopDrawing()
a+
Scaraber
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

lorsque tu as a travailler sur une image

met le tableau de point qui represente ton image (point()) dans un tableau !!

en effet la fonction point() est tres tres lente !!


ensuite les traitement sont beaucoup plus rapide sur les valeur se trouvant dans le Tableau

il ne reste plus a la fin qu'a plot(er) les valeur du tableau dans l'image qui recoit le resultat du traitement :D

Beaucoup plus rapide !! :)

un peu comme ça :

Code : Tout sélectionner

Dim image.l(639,479)
For x=0 To 639
    For Y=0 To 479
        image(x,Y)=Point(x,Y)
    Next Y
Next x




StartDrawing(ScreenOutput())
For x=0 To 639
    For Y=0 To 479
        Couleur= image(x,Y)
        Rouge=Red(Couleur)
        Vert=Green(Couleur)
        Bleu=Blue(Couleur)
        If Rouge<80
            Rouge=0
        Else
            Rouge-80
        EndIf
        If Vert<80
            Vert=0
        Else
            Vert-80
        EndIf
        If Bleu<20
            Bleu=0
        Else
            Bleu-20
        EndIf 
         image(x,Y)=RGB(Rouge,Vert,Bleu)
    Next
    Debug Str(x)+"/640"
Next


For x=0 To 639
    For Y=0 To 479
          Plot(x,Y, image(x,Y)) 
    Next Y
Next x



StopDrawing()
Dernière modification par Backup le lun. 28/mai/2007 11:58, modifié 3 fois.
Anonyme

Message par Anonyme »

Essaye sprite3Dblending mode, tu peut obtenir de bon effets lumineux. evite de dessiner avec des plots sur l'écran
Répondre