Page 1 sur 3
Postez vos codes disjonctés ici !!! :)
Publié : lun. 01/oct./2007 16:08
par Mytic
J’ai crée ce post pour poster tous les codes disjonctés.
En gros des codes qui font peur ou qui rendent l’utilisateur fou !!
Attention ! Ces codes ne doivent en aucun cas être des virus, mes des programmes qui jouent sur le graphique.
(Très utiles en pièces détachées)
En voici un très ( ??????)
Code : Tout sélectionner
;-------------
;--By Mytic
;-------------
InitSprite()
InitKeyboard()
CreateImage(0,640,480)
Procedure capture_ecran()
EcranX = GetSystemMetrics_(#SM_CXSCREEN)
EcranY = GetSystemMetrics_(#SM_CYSCREEN)
Ecran_Largeur=EcranX
Ecran_Hauteur=EcranY
#SRCCOPY = $CC0020
DC = GetDC_(0)
ResizeImage(0,Ecran_Largeur, Ecran_Hauteur)
dessin = StartDrawing(ImageOutput(0))
BitBlt_(dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCCOPY)
StopDrawing()
ReleaseDC_(0, DC)
EndProcedure
temps = ElapsedMilliseconds()
capture_ecran()
OpenScreen(ImageWidth(0),ImageHeight(0),32,"test")
x.d = 0
v.d = 0
ClearScreen(0)
StartDrawing(ScreenOutput())
DrawImage(ImageID(0),x,0)
StopDrawing()
FlipBuffers()
Delay(1000)
Repeat
ClearScreen(0)
StartDrawing(ScreenOutput())
x = x - v
v = v + 0.5
If x < ImageWidth(0)*-1
x = 0
EndIf
DrawImage(ImageID(0),x,0)
DrawImage(ImageID(0),x+ImageWidth(0)+1,0)
StopDrawing()
FlipBuffers()
ExamineKeyboard()
Delay(2)
Until KeyboardPushed(#PB_Key_Escape)
CloseScreen()
End
Ne regardez pas le code avant de l’avoir exécuté

Publié : lun. 01/oct./2007 16:19
par Mytic
Un autre code sorti il y’a quelques instants de l’asile psychiatrique
Code : Tout sélectionner
;-------------
;--By Mytic
;-------------
InitSprite()
InitKeyboard()
CreateImage(0,640,480)
Procedure capture_ecran()
EcranX = GetSystemMetrics_(#SM_CXSCREEN)
EcranY = GetSystemMetrics_(#SM_CYSCREEN)
Ecran_Largeur=EcranX
Ecran_Hauteur=EcranY
#SRCCOPY = $CC0020
DC = GetDC_(0)
ResizeImage(0,Ecran_Largeur, Ecran_Hauteur)
dessin = StartDrawing(ImageOutput(0))
BitBlt_(dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCCOPY)
StopDrawing()
ReleaseDC_(0, DC)
EndProcedure
temps = ElapsedMilliseconds()
capture_ecran()
OpenScreen(ImageWidth(0),ImageHeight(0),32,"test")
x.d = 0
v.d = 0
ClearScreen(0)
StartDrawing(ScreenOutput())
DrawImage(ImageID(0),x,0)
StopDrawing()
FlipBuffers()
Delay(1000)
Repeat
StartDrawing(ScreenOutput())
Circle(Random(ImageWidth(0)),Random(ImageHeight(0)),Random(10),Random(255))
StopDrawing()
FlipBuffers() ; Exprès pour donner l'effet flash
ExamineKeyboard()
Delay(2)
Until KeyboardPushed(#PB_Key_Escape)
CloseScreen()
End
Publié : lun. 01/oct./2007 16:39
par Backup
pour ton dernier code, et pour en general tes codes de ce genre
prefere l'utilisation d'un sprite, pour faire tes dessins dedans
plutot que de les faire directement a l'ecran , car sinon on obtiens une petite vibration lorsque c'est dessiné directement
regarde, j'ai modifié ton dernier listing , pour qu'il utilise un sprite, l'image est beaucoup plus nette
d'autre part
ton topic est un doublon d'un topic existant deja , s'appellant "pixel effect", qui regroupe les prg usant des pixel
voir ici :
http://www.purebasic.fr/french/viewtopic.php?t=5685
Code : Tout sélectionner
;-------------
;--By Mytic
;-------------
InitSprite()
InitKeyboard()
CreateImage(0,640,480)
#fond=1
Procedure capture_ecran()
EcranX = GetSystemMetrics_(#SM_CXSCREEN)
EcranY = GetSystemMetrics_(#SM_CYSCREEN)
Ecran_Largeur=EcranX
Ecran_Hauteur=EcranY
#SRCCOPY = $CC0020
DC = GetDC_(0)
ResizeImage(0,Ecran_Largeur, Ecran_Hauteur)
dessin = StartDrawing(ImageOutput(0))
BitBlt_(dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCCOPY)
StopDrawing()
ReleaseDC_(0, DC)
EndProcedure
temps = ElapsedMilliseconds()
capture_ecran()
OpenScreen(ImageWidth(0),ImageHeight(0),32,"test")
CreateSprite(#fond,ImageWidth(0),ImageHeight(0))
x.d = 0
v.d = 0
ClearScreen(0)
StartDrawing(SpriteOutput(#fond))
DrawImage(ImageID(0),x,0)
StopDrawing()
FlipBuffers()
Delay(1000)
Repeat
StartDrawing(SpriteOutput(#fond))
Circle(Random(ImageWidth(0)),Random(ImageHeight(0)),Random(10),Random(255))
StopDrawing()
DisplaySprite(#fond,0,0)
FlipBuffers() ; Exprès pour donner l'effet flash
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
CloseScreen()
End
Publié : lun. 01/oct./2007 16:52
par Mytic
Merci…
Mais le but des deux post est différent ?
L’autre c’est pour des effets avec des pixels
Et celui là, des effets avec le Windows

Publié : lun. 01/oct./2007 16:52
par Backup
Mytic a écrit :Merci…
Mais le but des deux post est différent ?
L’autre c’est pour des effets avec des pixels
Et celui là, des effets avec le Windows

en utilisant screen ??

Publié : lun. 01/oct./2007 16:59
par Mytic
En gros le but c’est de capturer l’écran du Windows, puis de faire n’importe quoi avec !

Publié : lun. 01/oct./2007 17:03
par venom
salut voici le mien j'avais fait sa il y a un petit moment pour kcc il me semble

.
Code : Tout sélectionner
Procedure appuie() ; <---- fait un appuie de la touche imprime ecrant ;)
#Desk = #True
If #Desk = #True
keybd_event_(#VK_SNAPSHOT, 0, 0, 0)
EndIf
EndProcedure
Delay(100)
appuie()
If ExamineDesktops()
Ecran_Largeur = DesktopWidth(0)
Ecran_Hauteur = DesktopHeight(0)
ProfondeurCouleur = DesktopDepth(0)
Else
End
EndIf
DC = GetDC_(0)
CreateImage(0, Ecran_Largeur, Ecran_Hauteur)
Dessin = StartDrawing(ImageOutput(0))
BitBlt_(Dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCPAINT | $40000000) ; <----on copie l'image qui est dans le dossier temporaire
StopDrawing()
ReleaseDC_(0, DC)
SaveImage(0, "c:/Screenshoot.bmp", #PB_ImagePlugin_BMP) ; <---on la colle ou on veut :)
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;- Window Constant
Enumeration
#Window_0
EndEnumeration
If ExamineDesktops()
L = DesktopWidth(0)
H = DesktopHeight(0)
EndIf
If OpenWindow(#Window_0, 0, 0, L, H, "desktop tremble", #PB_Window_BorderLess) ; <---et la on crée une fenetre plein ecrant sans bordure puis on n'y colle l'image
StickyWindow(#Window_0, 1)
If CreateGadgetList(WindowID(#Window_0))
If LoadImage(0, "c:/Screenshoot.bmp")
ImageGadget(0, 0, 0, L, H, ImageID(0))
EndIf
; <----la on fait un ResizeWindow pour deplacer la fenetre a l'endroit souhaité
For R = 0 To 100
ResizeWindow(#Window_0, Random(8), Random(8), L, H)
Delay(20)
Next
EndIf
EndIf
Delay(3000)
End
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
ps: peut pas mieu faire
@++
Publié : lun. 01/oct./2007 17:08
par Backup
Mytic a écrit :En gros le but c’est de capturer l’écran du Windows, puis de faire n’importe quoi avec !

ce n'est pas ce qu'indique l'intitulé du topic , mais bon

Publié : lun. 01/oct./2007 17:16
par Mytic
@Dobro
C’est vrai, le nom est mal choisi !
@venom
C’est un wizz géant
pour la capture utilise cette procedure :
Code : Tout sélectionner
Procedure capture_ecran()
EcranX = GetSystemMetrics_(#SM_CXSCREEN)
EcranY = GetSystemMetrics_(#SM_CYSCREEN)
Ecran_Largeur=EcranX
Ecran_Hauteur=EcranY
#SRCCOPY = $CC0020
DC = GetDC_(0)
ResizeImage(0,Ecran_Largeur, Ecran_Hauteur)
dessin = StartDrawing(ImageOutput(0))
BitBlt_(dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCCOPY)
StopDrawing()
ReleaseDC_(0, DC)
EndProcedure
Publié : lun. 01/oct./2007 17:22
par venom
@venom
C’est un wizz géant
c'etait le but rechercher sur le moment
voir ci-dessous
http://www.purebasic.fr/french/viewtopi ... highlight=
@++
Publié : mar. 02/oct./2007 20:22
par venom
si non il y a sa que je vien de faire
Code : Tout sélectionner
Procedure appuie()
#Desk = #True
If #Desk = #True
keybd_event_(#VK_SNAPSHOT, 0, 0, 0)
EndIf
EndProcedure
Delay(100)
appuie()
If ExamineDesktops()
Ecran_Largeur = DesktopWidth(0)
Ecran_Hauteur = DesktopHeight(0)
ProfondeurCouleur = DesktopDepth(0)
Else
End
EndIf
DC = GetDC_(0)
CreateImage(0, Ecran_Largeur, Ecran_Hauteur)
Dessin = StartDrawing(ImageOutput(0))
BitBlt_(Dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCPAINT | $40000000) ; <----on copie l'image qui est dans le dossier temporaire
StopDrawing()
ReleaseDC_(0, DC)
SaveImage(0, "c:/Screenshoot.bmp", #PB_ImagePlugin_BMP) ; <---on la colle ou on veut :)
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
End
EndIf
If InitSprite3D() = 0
MessageRequester("Error", "Direct3D system can't be initialized correctly", 0)
End
EndIf
If OpenScreen(800, 600, 16, "Sprite")
; Load our 16 bit sprite (which is a 24 bit picture in fact, as BMP doesn't support 16 bit format)
;
LoadSprite(0, "c:/Screenshoot.bmp", #PB_Sprite_Texture)
CreateSprite3D(1, 0)
Sprite3DQuality(1)
TransparentSpriteColor(0, RGB(255, 0, 255)) ; Our pink is transparent :)
Repeat
; Inverse the buffers (the back become the front (visible)... And we can do the rendering on the back)
FlipBuffers()
ClearScreen(RGB(0,0,0))
; Draw our sprite
;
If Start3D()
ZoomSprite3D(1, x, x)
RotateSprite3D(1, 1, 1)
DisplaySprite3D (1, 0, 10, x)
Stop3D()
EndIf
ExamineKeyboard()
x+1
Until x > 1000 Or KeyboardPushed(#PB_Key_Escape)
Else
MessageRequester("Error", "Can't open a 800*600 - 16 bit screen !", 0)
EndIf
End
@++
Publié : mar. 02/oct./2007 20:39
par Mytic
@Venom
Sympa aussi, le seul problème c’est le degré de transparence, il fallait le faire baisser avec un facteur Transparence = transparence + (transparence / Distance)

Publié : mar. 02/oct./2007 20:44
par venom
bin le probleme c'est que je me sert jamais des sprits donc je me suis servie de l'exemple et j'y et ajouté la fonction screenshoot

.
mais bon

.
@++
Publié : mar. 02/oct./2007 21:17
par Kwai chang caine
Super cool ton effet VENOM
Par contre pourquoi ça disparait au bout d'un tour
N'est il pas possible que l'effet soit continu
Ce qui serait bien aussi, c'est qu'a la fin ça termine en lieu et place de la fenetre de départ
J'y connais rien, donc, je ne me rend pas compte de ce qui est dur ou simple à réaliser.
En tout cas félicitation, cet effet me plait beaucoup

Publié : mar. 02/oct./2007 21:50
par venom
voila sans changer de couleur
Code : Tout sélectionner
Procedure appuie()
#Desk = #True
If #Desk = #True
keybd_event_(#VK_SNAPSHOT, 0, 0, 0)
EndIf
EndProcedure
Delay(100)
appuie()
If ExamineDesktops()
Ecran_Largeur = DesktopWidth(0)
Ecran_Hauteur = DesktopHeight(0)
ProfondeurCouleur = DesktopDepth(0)
Else
End
EndIf
DC = GetDC_(0)
CreateImage(0, Ecran_Largeur, Ecran_Hauteur)
Dessin = StartDrawing(ImageOutput(0))
BitBlt_(Dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCPAINT | $40000000) ; <----on copie l'image qui est dans le dossier temporaire
StopDrawing()
ReleaseDC_(0, DC)
SaveImage(0, "c:/Screenshoot.bmp", #PB_ImagePlugin_BMP) ; <---on la colle ou on veut :)
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
End
EndIf
If InitSprite3D() = 0
MessageRequester("Error", "Direct3D system can't be initialized correctly", 0)
End
EndIf
If OpenScreen(Ecran_Largeur, Ecran_Hauteur, ProfondeurCouleur, "Sprite")
; Load our 16 bit sprite (which is a 24 bit picture in fact, as BMP doesn't support 16 bit format)
;
LoadSprite(0, "c:/Screenshoot.bmp", #PB_Sprite_Texture)
CreateSprite3D(1, 0)
Sprite3DQuality(0)
TransparentSpriteColor(0, RGB(255, 0, 255)) ; Our pink is transparent :)
Repeat
; Inverse the buffers (the back become the front (visible)... And we can do the rendering on the back)
FlipBuffers()
ClearScreen(RGB(0,0,0))
; Draw our sprite
;
If Start3D()
ZoomSprite3D(1, x, x)
RotateSprite3D(1, 1, 1)
DisplaySprite3D (1, 0, 10, 255)
Stop3D()
EndIf
ExamineKeyboard()
x+1
Until x > 1000 Or KeyboardPushed(#PB_Key_Escape)
Else
MessageRequester("Error", "Can't open a 800*600 - 16 bit screen !", 0)
EndIf
End
@++