BLUCKY (EFFET SPECIAL UTILISÉ AU CINEMA ET A LA TÉLÉ)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
23 mai 2003 à 16:01
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005
-
26 mai 2003 à 17:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 25 mai 2003 à 21:34
tu comptes mettre squand la source ?
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 24 mai 2003 à 12:46
pour les sources t'as qu'a me les envoyer, ou bie nencore mieux les mettre ssur VBfrance pour en faire profiter tt le monde
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 24 mai 2003 à 10:46
salut, ouai ca serait cool pour la source , merci !
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 24 mai 2003 à 00:42
TheHacker
et bien mon ami ce n'est pas que j'aime pas car c vrai que le but est
atteind mais esce que tu te rend compte que tu ne fait rien d'autre que de dessinerun sprite sur un decors ????
et as-tu remarqué la vitesse de ton algo.....
alors imagine un jeu entier reposant sur ta source !! NON !! impossible
donc comme je te le disait plus haut il te suffit juste
de jouer avec l'API BitBlt et avec les constante de Raster
c pas plus compliquer d'abord tu crée le mask de ton sprite
(image noir sur fond blanc) puis tu decoupe ton sprite
(image couleur sur fond bleue par exemple) puis tu combine les deux
sur ton decors !!!
Rien de plus simple et de plus efficace !!
il suffit de regarder la fonction GdiTransparentBlt pour s'appercevoir qu'elle fait appel elle aussi a BitBlt (mais mache le travail et applique une gamma) !!
voila rien de plus...
si tu ve le detail de mon explication (les sources) fait le moi savoir
@+ et bonne prog ;-D
yoman64
Messages postés962Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 2 août 20102 23 mai 2003 à 21:48
Re snif...
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 23 mai 2003 à 16:43
ok, alors merci pour les tuyaux :-D
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 mai 2003 à 16:34
l'api, comme precisé susditement, ne fonctionne pas sous 98
la modification apportée est :
SavePicture Form2.Picture1.Image, CD.FileName
au lieu de
SavePicture Form2.Picture1.Picture, CD.FileName
subtile, mais ca change tout...
quand ensuite, notre ami parle de base (et il a raison), il veux dire que de nombreux softs utilisent ce principe, et les jeux n'y font pas (loin de la) exception !!
plusieurs sources sur le site utilisent cela, mais ce n'est pas le but principal de leur sources, voila donc pourquoi tu ne l'avais pas trouvé ici..... (j'ai pas cherché, mais on te fait confiance...)
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 23 mai 2003 à 16:21
Renfield >Waou, ca fait bcp comme amélioration, t sur que ton API marche sur tt les OS de windows ???
sinon pour l'enregistrement, j'veux bien changer, mais j'pige pas l'amélioration, t'as fait un copier coller la, t'as du oublié de mettre la modification ....
sinon ton API GdiTransparentBlt , il fait quoi exactement ?
Yoman> je suis content que ca te plaise ! :-)
EBArtSoft > j'pige pas, t'aime bien ou pas l'prog ??? parce qu'en debut de message tu dit que c la base, mais j'ai pas encore vu ce prog sur VBrance .
@+
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 mai 2003 à 16:12
TransparentBlit ne fonctionne en effet pas sous 98....
yoman64
Messages postés962Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 2 août 20102 23 mai 2003 à 16:09
C pas juste ,je mapretais a poster une source de ce genre...Sniff
Eb t-k je vais la poster kan meme parce ke moi ya plus doption mais c bien 10/10
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 23 mai 2003 à 16:08
loooooool ben dit donc tu sort d'ou toi ...
ça s'appel aussi Sprite et c la base de toute application graphique !!!
mais bon je sait peut etre que tu debute alors la ce serait normal ;-D
Ecoute Renfield il est de bon conseil ....
par contre je suis pas sur que GdiTransparentBlt soit un proto
accessible sur toute les version de Windows !
tu devrais passer par des Bitblt en utilisant les RasterOp (vbSrcCopy,vbSrcAnd,vbMergePaint)
et tu peut meme le faire avec PaintPicture !
bonne pr@g
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 mai 2003 à 16:05
autre chose , il y a une raison très simple , qui explique qu'on utilise le bleu ou le vert , c'est que la peau contient pas de pigments de cette couleur !! (sauf les schtroumpfs). si on utilisait du rouge, par exemple, on ne verrait pas (ou peu) les acteurs..... car on n'uilise jamais une couleur clef, mais en fait un gamme de couleurs, car selon l'eclairage, l'inclinaison.... la couleur n'est pas unie !! donc on prend une gamme de bleus ou de verts.....
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 mai 2003 à 16:01
pas trop mal, niveau 2 je sais pas , mais pas mal....
a mon avis , ca s'appelle "BlueKey"
pour l'enregistrement , met plutot ca :
Private Sub MnuSave_Click()
On Error GoTo ok
CD.CancelError = True
CD.DialogTitle = "Enregistrer votre création !:-)"
CD.ShowSave
SavePicture Form2.Picture1.Image, CD.FileName
Exit Sub
ok:
End Sub
en effet si l'autoredraw est a true tout ce que tu dessines va sur la propriete .image qui tiens pour l'image permanente.....
autre chose , on peut faire (beaucoup) plus rapide !!! :
'Ajoutes ca dans ton module...
Public Declare Function GdiTransparentBlt Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Boolean
'Et ca a la place de ton autre procedure...
Private Sub MnuChange_Click()
If CoolBlucky 0 Then m MsgBox("Attention:veuillez saisir une couleur pour le blucky !", vbCritical, "Couleur du clucky !"): Exit Sub
Picture1.ScaleMode = vbPixels
Form2.Picture1.ScaleMode = vbPixels
Call GdiTransparentBlt(Form2.Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, CoolBlucky)
call MsgBox("Finished !", vbInformation, "Effet blucky")
End Sub
26 mai 2003 à 17:22
je vais jeter un coup d'oeil !
25 mai 2003 à 22:52
http://vbfrance.com/article.aspx?Val=8991
@+
25 mai 2003 à 21:34
24 mai 2003 à 12:46
24 mai 2003 à 10:46
24 mai 2003 à 00:42
et bien mon ami ce n'est pas que j'aime pas car c vrai que le but est
atteind mais esce que tu te rend compte que tu ne fait rien d'autre que de dessinerun sprite sur un decors ????
et as-tu remarqué la vitesse de ton algo.....
alors imagine un jeu entier reposant sur ta source !! NON !! impossible
donc comme je te le disait plus haut il te suffit juste
de jouer avec l'API BitBlt et avec les constante de Raster
c pas plus compliquer d'abord tu crée le mask de ton sprite
(image noir sur fond blanc) puis tu decoupe ton sprite
(image couleur sur fond bleue par exemple) puis tu combine les deux
sur ton decors !!!
Rien de plus simple et de plus efficace !!
il suffit de regarder la fonction GdiTransparentBlt pour s'appercevoir qu'elle fait appel elle aussi a BitBlt (mais mache le travail et applique une gamma) !!
voila rien de plus...
si tu ve le detail de mon explication (les sources) fait le moi savoir
@+ et bonne prog ;-D
23 mai 2003 à 21:48
23 mai 2003 à 16:43
23 mai 2003 à 16:34
la modification apportée est :
SavePicture Form2.Picture1.Image, CD.FileName
au lieu de
SavePicture Form2.Picture1.Picture, CD.FileName
subtile, mais ca change tout...
quand ensuite, notre ami parle de base (et il a raison), il veux dire que de nombreux softs utilisent ce principe, et les jeux n'y font pas (loin de la) exception !!
plusieurs sources sur le site utilisent cela, mais ce n'est pas le but principal de leur sources, voila donc pourquoi tu ne l'avais pas trouvé ici..... (j'ai pas cherché, mais on te fait confiance...)
23 mai 2003 à 16:21
sinon pour l'enregistrement, j'veux bien changer, mais j'pige pas l'amélioration, t'as fait un copier coller la, t'as du oublié de mettre la modification ....
sinon ton API GdiTransparentBlt , il fait quoi exactement ?
Yoman> je suis content que ca te plaise ! :-)
EBArtSoft > j'pige pas, t'aime bien ou pas l'prog ??? parce qu'en debut de message tu dit que c la base, mais j'ai pas encore vu ce prog sur VBrance .
@+
23 mai 2003 à 16:12
23 mai 2003 à 16:09
Eb t-k je vais la poster kan meme parce ke moi ya plus doption mais c bien 10/10
23 mai 2003 à 16:08
ça s'appel aussi Sprite et c la base de toute application graphique !!!
mais bon je sait peut etre que tu debute alors la ce serait normal ;-D
Ecoute Renfield il est de bon conseil ....
par contre je suis pas sur que GdiTransparentBlt soit un proto
accessible sur toute les version de Windows !
tu devrais passer par des Bitblt en utilisant les RasterOp (vbSrcCopy,vbSrcAnd,vbMergePaint)
et tu peut meme le faire avec PaintPicture !
bonne pr@g
23 mai 2003 à 16:05
23 mai 2003 à 16:01
a mon avis , ca s'appelle "BlueKey"
pour l'enregistrement , met plutot ca :
Private Sub MnuSave_Click()
On Error GoTo ok
CD.CancelError = True
CD.DialogTitle = "Enregistrer votre création !:-)"
CD.ShowSave
SavePicture Form2.Picture1.Image, CD.FileName
Exit Sub
ok:
End Sub
en effet si l'autoredraw est a true tout ce que tu dessines va sur la propriete .image qui tiens pour l'image permanente.....
autre chose , on peut faire (beaucoup) plus rapide !!! :
'Ajoutes ca dans ton module...
Public Declare Function GdiTransparentBlt Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Boolean
'Et ca a la place de ton autre procedure...
Private Sub MnuChange_Click()
If CoolBlucky 0 Then m MsgBox("Attention:veuillez saisir une couleur pour le blucky !", vbCritical, "Couleur du clucky !"): Exit Sub
Picture1.ScaleMode = vbPixels
Form2.Picture1.ScaleMode = vbPixels
Call GdiTransparentBlt(Form2.Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, CoolBlucky)
call MsgBox("Finished !", vbInformation, "Effet blucky")
End Sub