Publié : ven. 28/janv./2005 12:41
C'était juste pour gagner des lignes de code pour les encore non-licenciés 

Code : Tout sélectionner
Dim tab(10,10) ; on cree 2 tableaux
Dim tab2(10,10)
For x= 0 To 10
For y=0 To 10
tab (x,y)=Random(50) ; on rempli le premier avec des chiffre au hazard
Next y
Next x
;on copie le tableau 1 dans le 2
copymemory(@tab(),@tab2(),4*11*11); long=4 octets
; on verifie
For x= 0 To 10
For y=0 To 10
Debug "tableau 1 "+ Str(tab (x,y))
Debug "tableau 2 "+ Str(tab2 (x,y))
Next y
Next x
Code : Tout sélectionner
4*11*11
Code : Tout sélectionner
#dobro=1
#Police=1
#Sprite=1
spr=1
Dim ecran(640,400)
For x = 0 To 640 ; un écran de couleurs aléatoires
For y = 0 To 400
r=Random(2)
g=Random(255)
b=Random(5)
c=RGB(r,g,b)
ecran(x,y)= c
Next y
Next x
; ***********************************
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, 640, 400, #PB_Window_SystemMenu| #PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello")
WindowID = WindowID(1)
Result = OpenWindowedScreen(WindowID,0,0, 640, 400, 1, 0,0)
CreateSprite(1, 650, 420) ; cree 1 sprites qui sert d'ecran 1
CreateSprite(2, 650, 420) ; cree 1 sprites qui sert d'ecran 2
Resultat = InitMouse()
Repeat
ExamineMouse()
Event=WindowEvent()
While MouseButton(1)
mouse_event_(#MOUSEEVENTF_LEFTUP,xm,ym,0,1) ; appuis
mouse_event_(#MOUSEEVENTF_LEFTDOWN,xm,ym,0,1) ; relache
Wend
If MouseButton(2)
End
EndIf
StartDrawing(SpriteOutput(spr) ) ; on dessine dedans
For x = 1 To 640
For y = 1 To 400 ;genre de moyenne de couleur autour du pixel considéré
c=ecran(x-1,y) + ecran(x+1,y) + ecran(x,y-1) + ecran(x,y+1)
c=c/4.002
If c<1
c = RGB(0,0,255)
EndIf
ecran(x,y)=c
Plot(x,y,c) ; on affiche les pixels avec la nouvelle couleur
Next y
Next x
StopDrawing()
spr=spr+1
If spr>2
spr=1
EndIf
DisplaySprite(spr, -5, -5)
FlipBuffers():; affiche l'ecran
ClearScreen(0, 0, 0) :;efface l'ecran
Until Event=#PB_Event_CloseWindow
Ben alors, déjà oublié ce que tu disais, c'est le nombre d'éléments.Dobro a écrit :c'est ce que je disai en passant par les pointeurs ça doit etre plus rapide
![]()
Merci Hardy
ps : aquoi sertle 4 c'est pour les long , mais les 11 ??Code : Tout sélectionner
4*11*11
Code : Tout sélectionner
#dobro=1
#Police=1
#Sprite=1
spr=1
Dim ecran(640,480)
For x = 0 To 639 ; un écran de couleurs aléatoires
For y = 0 To 479
r=Random(255)
g=Random(255)
b=Random(255)
c=RGB(r,g,b) ;Couleur du pixel
ecran(x,y)= c
Next y
Next x
; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold )
EcranX = 600 ;=largeur de l'ecran
EcranY = 480;=hauteur de l'ecran
WindowID = OpenWindow(1, 0, 0, 640, 480, #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello")
WindowID = WindowID(1)
Result = OpenWindowedScreen(WindowID,0,0, 640, 480, 1, 0,0)
CreateSprite(1, 640, 480) ; cree 1 sprites qui sert d'ecran 1
CreateSprite(2, 640, 480) ; cree 1 sprites qui sert d'ecran 2
Repeat
Event=WindowEvent()
StartDrawing(SpriteOutput(spr) ) ; on dessine dedans
For x = 1 To 638 ; lignes intérieures
For y = 1 To 478;genre de moyenne de couleur autour du pixel considéré
c=ecran(x-1,y) + ecran(x+1,y) + ecran(x,y-1) + ecran(x,y+1)
Gosub t_race
Next y
Next x
For x = 1 To 638 ;ligne x 0
c=ecran(x-1,0) + ecran(x+1,0) + ecran(x,1) + ecran(x,479)
y=0
Gosub t_race
Next x
For x = 1 To 638 ;ligne x 479
c=ecran(x-1,479) + ecran(x+1,479) + ecran(x,1) + ecran(x,478)
y=479
Gosub t_race
Next x
For y = 1 To 478 ;colonne 0 y
c=ecran(639,y) + ecran(1,y) + ecran(0,y-1) + ecran(0,y+1)
x= 0
Gosub t_race
Next y
For y = 1 To 478 ;colonne 639 y
c=ecran(638,y) + ecran(0,y) + ecran(639,y-1) + ecran(639,y+1)
x= 639
Gosub t_race
Next y
;Les 4 coins
c=ecran(639,0) + ecran(1,0) + ecran(0,479) + ecran(0,1)
x=0
y=0
Gosub t_race
c=ecran(639,479) + ecran(1,479) + ecran(0,478) + ecran(0,0)
x=0
y=479
Gosub t_race
c=ecran(638,0) + ecran(0,0) + ecran(639,479) + ecran(639,1)
x=639
y=0
Gosub t_race
c=ecran(638,479) + ecran(0,479) + ecran(639,478) + ecran(639,0)
x=639
y=479
Gosub t_race
StopDrawing()
spr=spr+1
If spr>2
spr=1
EndIf
DisplaySprite(spr, 0, 0)
FlipBuffers():; affiche l'ecran
ClearScreen(0, 0, 0) :;efface l'ecran
Until Event=#PB_Event_CloseWindow
End
t_race :
m=4
c=c/m ;Genre de moyenne de couleurs des 4 voisins du pixel considéré
s= 1 ;seuil
;C'est la moyenne et le seuil qui déterminent des genres d'images totalement différentes!
If c<s
c=RGB(125,125,125) ;Si la moyenne de couleurs dépasse un seuil on la normalise
EndIf
ecran(x,y)=c
Plot(x,y,c) ; on affiche le pixel avec la nouvelle couleur
Return
Cela ne marche pas pour moiAstuce: Une mise en forme peut être appliquée au texte sélectionné.
Moi aussifilperj a écrit :Hé, très joli !![]()
J'aime beaucoup l'effet "à 2 niveaux".
Ben alors, déjà oublié ce que tu disais, c'est le nombre d'éléments. Laughing