Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Extracteur de sprites | |
| | Auteur | Message |
---|
659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Extracteur de sprites Mer 10 Aoû 2011 - 9:05 | |
| Programme pour extraire les sprites d'une feuille de sprites - Code:
-
' hide 0 Label enter_key ,Dess_rect,sauve_sprite Label Charge_fichier
Dim Fenetre_01%,Fenetre_02%,Image_01% ,picture01% Dim i% ,J%
Dim B_Charge Dim Dir_Dial Dim File_nom$
Dim tbl_red(256,256) Dim tbl_green(256,256) Dim tbl_blue(256,256)
Dim Spr_X ,X_Spr Dim Spr_Y,Y_Spr dim fine_X dim fine_y
Dim X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5
Spr_X = 32 Spr_Y = 32
Dim File_Num File_Num=1000
Dim Inc_X,Inc_Y Inc_X = 0 Inc_Y = 0
fine_X=0 fine_y=0
Fenetre_01% = 01 Fenetre_02% = 02 picture01% = 13 Image_01% = 101 B_Charge = 201 Dir_Dial = 301
Form Fenetre_01% width Fenetre_01%,800 Height Fenetre_01%,600 top Fenetre_01%,0 left Fenetre_01%,0
Form Fenetre_02% width Fenetre_02%,400 Height Fenetre_02%,600 top Fenetre_02%,0 left Fenetre_02%,820 command_target_is Fenetre_02% open_dialog Dir_Dial button B_Charge top B_Charge,50 left B_Charge,50 Caption B_Charge ,"Ouvrir" command_target_is Fenetre_01%
picture picture01% width picture01%,800 height picture01%,600 Top picture01%,0 left picture01%,0
2d_target_is picture01% ' file_load picture01%,"ostrich.bmp"
' GoSub Dess_rect
on_key_down Fenetre_01%,enter_key on_click B_Charge,Charge_fichier
end
' ---------------------------------- enter_key:
if key_down_code=37 :' Touche fleche Gauche
Inc_X=Inc_X-1
GoSub Dess_rect
end_if
if key_down_code=38 :' Touche fleche Gauche
Inc_Y=Inc_Y-1
GoSub Dess_rect
end_if
if key_down_code=39 :' Touche fleche Droite
Inc_X=Inc_X+1
GoSub Dess_rect
End_If
if key_down_code=40 :' Touche fleche Gauche
Inc_Y=Inc_Y+1
GoSub Dess_rect
end_if
if key_down_code=68 :' Touche D deplacement :' fin en X+ fine_X=fine_X+1
GoSub Dess_rect
end_if if key_down_code=71 :' Touche G deplacement :' fin en X- fine_X=fine_X-1
GoSub Dess_rect
end_if
if key_down_code=66 :' Touche B deplacement :' fin en Y+ fine_Y=fine_Y+1
GoSub Dess_rect
end_if
if key_down_code=72 :' Touche H deplacement :' fin en Y- fine_Y=fine_Y-1 GoSub Dess_rect
end_if
if key_down_code=83 :' Touche S sauvegarde :' sprite File_Num=File_Num+1
Gosub sauve_sprite
end_if if key_down_code=107 :' Touche + agrandi :' rectangle Spr_X = Spr_X+16 Spr_y = Spr_y+16 X_spr = Spr_X Y_Spr = Spr_Y print X_spr GoSub Dess_rect
end_if
if key_down_code=109 :' Touche + agrandi :' rectangle Spr_X = Spr_X-16 Spr_y = Spr_y-16 X_spr = Spr_X Y_Spr = Spr_Y print X_spr GoSub Dess_rect
end_if
return
' ----------------------------------
Dess_rect:
' gosub Effa_Rect
2d_pen_color 255,255,255
file_load picture01%,File_nom$
X1=(Spr_X*Inc_X) Y1=Spr_y*Inc_Y X2=(Spr_X*(Inc_X+1)) Y2=Spr_y*Inc_Y X3=(Spr_X*(Inc_X+1)) Y3=Spr_y*(Inc_Y+1) X4=(Spr_X*Inc_X) Y4=Spr_y*(Inc_Y+1) X5=(Spr_X*Inc_X) Y5=Spr_y*Inc_Y
X1=X1+fine_X Y1=Y1+Fine_Y X2=X2+fine_X Y2=Y2+Fine_Y X3=X3+fine_X Y3=Y3+Fine_Y X4=X4+fine_X Y4=Y4+Fine_Y X5=X5+fine_X Y5=Y5+Fine_Y print X1
2d_poly_from X1,Y1 2d_poly_to X2,Y2 2d_poly_to X3,Y3 2d_poly_to X4,Y4 2d_poly_to X5,Y5
Spr_X=X_Spr Spr_Y=Y_Spr return ' ----------------------------------
' ---------------------------------- sauve_sprite: file_load picture01%,File_nom$ for i%=1 to Spr_X-1 for j%=1 to Spr_X-1 tbl_red(i%,j%)=Color_pixel_red(picture01%,x1+j%,y1+i%) tbl_green(i%,j%)=Color_pixel_Green(picture01%,x1+j%,y1+i%) tbl_blue(i%,j%)=Color_pixel_blue(picture01%,x1+j%,y1+i%) ' tbl_red(i%,j%)=Color_pixel_red(picture01%,Spr_X*Inc_X+j%,Spr_y*Inc_y+i%) ' tbl_green(i%,j%)=Color_pixel_Green(picture01%,Spr_X*Inc_X+j%,Spr_y*Inc_y+i%) ' tbl_blue(i%,j%)=Color_pixel_blue(picture01%,Spr_X*Inc_X+j%,Spr_y*Inc_y+i%) next J% next i% image File_Num for i%=0 to Spr_X for j%=0 to Spr_X 2d_pen_color tbl_red(i%,j%),tbl_green(i%,j%),tbl_blue(i%,j%) ' 2D_point 400+j%,60+i% 2D_point j%,i% next j% next i% 2d_image_copy File_Num,0,0,Spr_X,Spr_X file_save File_Num,File_nom$+str$(File_Num)+".bmp" Gosub Dess_rect
Return
Charge_fichier:
filter Dir_Dial,"SpriteSheet | *.Bmp" rem puis l'utiliser File_nom$=file_name$(Dir_Dial)
2d_target_is picture01%
file_load picture01%,File_nom$ ' stretch_on picture01% Return
<les touches fleche a gauche deplace rectangle a gauche " " Droite " " " droite " Haut " " vers le haut " Bas vers le bas + agrandit le rectangle par pas de 16 - reduit le rectangle " " " D deplace le rectangle de 1 pixel a droite G " " " a gauche H " " " vers le haut B " " " Vers le bas S sauvegarde la selection du pixel choisi sous la forme 0001.bmp 0002.bmp etc... si le fond est noir et curseur noir modifier la couleur dans dessine_rec. C'est un programme qui est très facile a modifier pour ceux qu'ils veulent. A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Extracteur de sprites Mer 10 Aoû 2011 - 11:36 | |
| Cool, merci J'ai juste fait une petite modif pour pouvoir changer directement la couleur du rectangle sans avoir à modifier le programme (+ quelques petites corrections par ce que tu avais était trop vite dans les commentaires - Code:
-
' Programme pour extraire les sprites d'une feuille de sprites ' V1.0 du 10/08/11 créé par 659_minifly ' ' <les touches ' ' "flèche gauche" deplace rectangle à gauche ' "flèche droite" deplace rectangle à droite ' "flèche haut" deplace rectangle vers le haut ' "flèche bas" deplace rectangle vers le bas ' ' "+" agrandit le rectangle par pas de 16 ' "-" reduit le rectangle par pas de 16 ' ' "D" déplace le rectangle de 1 pixel à droite ' "G" déplace le rectangle de 1 pixel à gauche ' "H" déplace le rectangle de 1 pixel vers le haut ' "B" déplace le rectangle de 1 pixel aB " " " Vers le bas ' ' "S" sauvegarde la selection du pixel choisi sous la forme 0001.bmp 0002.bmp etc... ' "F" bascule la couleur du rectangle de Blanc à Noir puis Bleu avant de revenir à Blanc ' '
' Déclaration des étiquettes Label enter_key ,Dess_rect,sauve_sprite, Charge_fichier
' Déclaration des variables et constantes Dim Fenetre_01%,Fenetre_02%,Image_01% ,picture01% , File_Num Dim i%,J%, B_Charge, Dir_Dial, File_nom$, X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5 Dim tbl_red(256,256), tbl_green(256,256), tbl_blue(256,256) Dim Spr_X ,X_Spr, Spr_Y,Y_Spr, fine_X, fine_y, Inc_X,Inc_Y Dim R_rect%, V_rect%, B_rect%
' Initialisation des variables Spr_X = 32 : Spr_Y = 32 : Inc_X = 0 : Inc_Y = 0 : fine_X=0 : fine_y=0 R_rect% = 255: V_rect% = 255 : B_rect% = 255
' Initialisation des constantes File_Num=1000 Fenetre_01% = 01 : Fenetre_02% = 02 : picture01% = 13 Image_01% = 101: B_Charge = 201: Dir_Dial = 301
' Création des fenêtres de travail et initialisation Hide 0 Form Fenetre_01% : width Fenetre_01%,800 : Height Fenetre_01%,600 top Fenetre_01%,0 : left Fenetre_01%,0
Form Fenetre_02% : width Fenetre_02%,130 : Height Fenetre_02%,600 top Fenetre_02%,0 : left Fenetre_02%,820
command_target_is Fenetre_02%
open_dialog Dir_Dial
button B_Charge : top B_Charge,50 : left B_Charge,25 : Caption B_Charge ,"Ouvrir"
command_target_is Fenetre_01%
picture picture01% : width picture01%,800: height picture01%,600: Top picture01%,0: left picture01%,0
2d_target_is picture01%
on_key_down Fenetre_01%,enter_key on_click B_Charge,Charge_fichier
end
' ---------------------------------- enter_key:
if key_down_code=37 :' Touche fleche Gauche Inc_X=Inc_X-1 GoSub Dess_rect end_if
if key_down_code=38 :' Touche fleche Bas Inc_Y=Inc_Y-1 GoSub Dess_rect end_if
if key_down_code=39 :' Touche fleche Droite Inc_X=Inc_X+1 GoSub Dess_rect End_If
if key_down_code=40 :' Touche fleche Haut Inc_Y=Inc_Y+1 GoSub Dess_rect end_if
if key_down_code=68 :' Touche D deplacement fin en X+ fine_X=fine_X+1 GoSub Dess_rect end_if
if key_down_code=71 :' Touche G deplacement fin en X- fine_X=fine_X-1 GoSub Dess_rect end_if
if key_down_code=66 :' Touche B deplacement fin en Y+ fine_Y=fine_Y+1 GoSub Dess_rect end_if
if key_down_code=72 :' Touche H deplacement fin en Y- fine_Y=fine_Y-1 GoSub Dess_rect end_if
if key_down_code=83 :' Touche S sauvegarde sprite File_Num=File_Num+1 Gosub sauve_sprite end_if if key_down_code=70 :' Touche F bascule la couleur du rectangle ' Blanc / Noir / Bleu if B_rect% = 255 if R_rect% = 0 R_rect% = 255: V_rect% = 255 : B_rect% = 255 else R_rect% = 0 : V_rect% = 0 : B_rect% = 0 end_if else R_rect% = 0 : V_rect% = 0 : B_rect% = 255 end_if GoSub Dess_rect end_if
if key_down_code=107 :' Touche + agrandi rectangle if Spr_X < 257 Spr_X = Spr_X+16 Spr_y = Spr_y+16 X_spr = Spr_X Y_Spr = Spr_Y print X_spr GoSub Dess_rect end_if end_if
if key_down_code=109 :' Touche - rétréci rectangle if Spr_X > 0 Spr_X = Spr_X-16 Spr_y = Spr_y-16 X_spr = Spr_X Y_Spr = Spr_Y print X_spr GoSub Dess_rect end_if end_if return
' ---------------------------------- Dess_rect:
2d_pen_color R_rect%,V_rect%,B_rect%
file_load picture01%,File_nom$
X1=(Spr_X*Inc_X) : Y1=Spr_y*Inc_Y : X2=(Spr_X*(Inc_X+1)) : Y2=Spr_y*Inc_Y X3=(Spr_X*(Inc_X+1)): Y3=Spr_y*(Inc_Y+1) : X4=(Spr_X*Inc_X) :Y4=Spr_y*(Inc_Y+1) X5=(Spr_X*Inc_X) : Y5=Spr_y*Inc_Y X1=X1+fine_X : Y1=Y1+Fine_Y : X2=X2+fine_X : Y2=Y2+Fine_Y : X3=X3+fine_X : Y3=Y3+Fine_Y X4=X4+fine_X : Y4=Y4+Fine_Y : X5=X5+fine_X : Y5=Y5+Fine_Y print X1 2d_poly_from X1,Y1 : 2d_poly_to X2,Y2 : 2d_poly_to X3,Y3 : 2d_poly_to X4,Y4 : 2d_poly_to X5,Y5 fine_X=0: fine_Y=0
return ' ----------------------------------
' ---------------------------------- sauve_sprite: file_load picture01%,File_nom$ for i%=1 to Spr_X-1 for j%=1 to Spr_X-1 tbl_red(i%,j%)=Color_pixel_red(picture01%,x1+j%,y1+i%) tbl_green(i%,j%)=Color_pixel_Green(picture01%,x1+j%,y1+i%) tbl_blue(i%,j%)=Color_pixel_blue(picture01%,x1+j%,y1+i%)
' tbl_red(i%,j%)=Color_pixel_red(picture01%,Spr_X*Inc_X+j%,Spr_y*Inc_y+i%) ' tbl_green(i%,j%)=Color_pixel_Green(picture01%,Spr_X*Inc_X+j%,Spr_y*Inc_y+i%) ' tbl_blue(i%,j%)=Color_pixel_blue(picture01%,Spr_X*Inc_X+j%,Spr_y*Inc_y+i%) next J% next i%
image File_Num for i%=0 to Spr_X for j%=0 to Spr_X
2d_pen_color tbl_red(i%,j%),tbl_green(i%,j%),tbl_blue(i%,j%) ' 2D_point 400+j%,60+i% 2D_point j%,i% next j% next i% 2d_image_copy File_Num,0,0,Spr_X,Spr_X file_save File_Num,File_nom$+str$(File_Num)+".bmp" Gosub Dess_rect
Return
Charge_fichier: filter Dir_Dial,"SpriteSheet | *.Bmp" rem puis l'utiliser File_nom$=file_name$(Dir_Dial)
2d_target_is picture01% file_load picture01%,File_nom$ ' stretch_on picture01% Return | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Extracteur de sprites Mer 10 Aoû 2011 - 14:06 | |
| Merci voila une nouvelle avec une correction car les déplacments fin ne fonctionnaient plus - Code:
-
' Programme pour extraire les sprites d'une feuille de sprites ' V1.0 du 10/08/11 créé par 659_minifly ' ' <les touches ' ' "flèche gauche" deplace rectangle à gauche ' "flèche droite" deplace rectangle à droite ' "flèche haut" deplace rectangle vers le haut ' "flèche bas" deplace rectangle vers le bas ' ' "+" agrandit le rectangle par pas de 16 ' "-" reduit le rectangle par pas de 16 ' ' "D" déplace le rectangle de 1 pixel à droite ' "G" déplace le rectangle de 1 pixel à gauche ' "H" déplace le rectangle de 1 pixel vers le haut ' "B" déplace le rectangle de 1 pixel aB " " " Vers le bas ' ' "S" sauvegarde la selection du pixel choisi sous la forme 0001.bmp 0002.bmp etc... ' "F" bascule la couleur du rectangle de Blanc à Noir puis Bleu avant de revenir à Blanc ' '
' Déclaration des étiquettes Label enter_key ,Dess_rect,sauve_sprite, Charge_fichier
' Déclaration des variables et constantes Dim Fenetre_01%,Fenetre_02%,Image_01% ,picture01% , File_Num Dim i%,J%, B_Charge, Dir_Dial, File_nom$, X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5 Dim tbl_red(256,256), tbl_green(256,256), tbl_blue(256,256) Dim Spr_X ,X_Spr, Spr_Y,Y_Spr, fine_X, fine_y, Inc_X,Inc_Y Dim R_rect%, V_rect%, B_rect%
' Initialisation des variables Spr_X = 32 : Spr_Y = 32 : Inc_X = 0 : Inc_Y = 0 : fine_X=0 : fine_y=0 R_rect% = 255: V_rect% = 255 : B_rect% = 255
' Initialisation des constantes File_Num=1000 Fenetre_01% = 01 : Fenetre_02% = 02 : picture01% = 13 Image_01% = 101: B_Charge = 201: Dir_Dial = 301
' Création des fenêtres de travail et initialisation Hide 0 Form Fenetre_01% : width Fenetre_01%,800 : Height Fenetre_01%,600 top Fenetre_01%,0 : left Fenetre_01%,0
Form Fenetre_02% : width Fenetre_02%,130 : Height Fenetre_02%,600 top Fenetre_02%,0 : left Fenetre_02%,820
command_target_is Fenetre_02%
open_dialog Dir_Dial
button B_Charge : top B_Charge,50 : left B_Charge,25 : Caption B_Charge ,"Ouvrir"
command_target_is Fenetre_01%
picture picture01% : width picture01%,800: height picture01%,600: Top picture01%,0: left picture01%,0
2d_target_is picture01%
on_key_down Fenetre_01%,enter_key on_click B_Charge,Charge_fichier
end
' ---------------------------------- enter_key:
if key_down_code=37 :' Touche fleche Gauche Inc_X=Inc_X-1 GoSub Dess_rect end_if
if key_down_code=38 :' Touche fleche Bas Inc_Y=Inc_Y-1 GoSub Dess_rect end_if
if key_down_code=39 :' Touche fleche Droite Inc_X=Inc_X+1 GoSub Dess_rect End_If
if key_down_code=40 :' Touche fleche Haut Inc_Y=Inc_Y+1 GoSub Dess_rect end_if
if key_down_code=68 :' Touche D deplacement fin en X+ fine_X=fine_X+1 GoSub Dess_rect end_if
if key_down_code=71 :' Touche G deplacement fin en X- fine_X=fine_X-1 GoSub Dess_rect end_if
if key_down_code=66 :' Touche B deplacement fin en Y+ fine_Y=fine_Y+1 GoSub Dess_rect end_if
if key_down_code=72 :' Touche H deplacement fin en Y- fine_Y=fine_Y-1 GoSub Dess_rect end_if
if key_down_code=83 :' Touche S sauvegarde sprite File_Num=File_Num+1 Gosub sauve_sprite end_if
if key_down_code=70 :' Touche F bascule la couleur du rectangle ' Blanc / Noir / Bleu if B_rect% = 255 if R_rect% = 0 R_rect% = 255: V_rect% = 255 : B_rect% = 255 else R_rect% = 0 : V_rect% = 0 : B_rect% = 0 end_if else R_rect% = 0 : V_rect% = 0 : B_rect% = 255 end_if GoSub Dess_rect end_if
if key_down_code=107 :' Touche + agrandi rectangle if Spr_X < 257 Spr_X = Spr_X+16 Spr_y = Spr_y+16 X_spr = Spr_X Y_Spr = Spr_Y print X_spr GoSub Dess_rect end_if end_if
if key_down_code=109 :' Touche - rétréci rectangle if Spr_X > 0 Spr_X = Spr_X-16 Spr_y = Spr_y-16 X_spr = Spr_X Y_Spr = Spr_Y print X_spr GoSub Dess_rect end_if end_if return
' ---------------------------------- Dess_rect:
2d_pen_color R_rect%,V_rect%,B_rect%
file_load picture01%,File_nom$
X1=(Spr_X*Inc_X) : Y1=Spr_y*Inc_Y : X2=(Spr_X*(Inc_X+1)) : Y2=Spr_y*Inc_Y X3=(Spr_X*(Inc_X+1)): Y3=Spr_y*(Inc_Y+1) : X4=(Spr_X*Inc_X) :Y4=Spr_y*(Inc_Y+1) X5=(Spr_X*Inc_X) : Y5=Spr_y*Inc_Y X1=X1+fine_X : Y1=Y1+Fine_Y : X2=X2+fine_X : Y2=Y2+Fine_Y : X3=X3+fine_X : Y3=Y3+Fine_Y X4=X4+fine_X : Y4=Y4+Fine_Y : X5=X5+fine_X : Y5=Y5+Fine_Y print X1 2d_poly_from X1,Y1 : 2d_poly_to X2,Y2 : 2d_poly_to X3,Y3 : 2d_poly_to X4,Y4 : 2d_poly_to X5,Y5
Spr_X=X_Spr Spr_Y=Y_Spr
return ' ----------------------------------
' ---------------------------------- sauve_sprite: file_load picture01%,File_nom$ for i%=1 to Spr_X-1 for j%=1 to Spr_X-1 tbl_red(i%,j%)=Color_pixel_red(picture01%,x1+j%,y1+i%) tbl_green(i%,j%)=Color_pixel_Green(picture01%,x1+j%,y1+i%) tbl_blue(i%,j%)=Color_pixel_blue(picture01%,x1+j%,y1+i%)
' tbl_red(i%,j%)=Color_pixel_red(picture01%,Spr_X*Inc_X+j%,Spr_y*Inc_y+i%) ' tbl_green(i%,j%)=Color_pixel_Green(picture01%,Spr_X*Inc_X+j%,Spr_y*Inc_y+i%) ' tbl_blue(i%,j%)=Color_pixel_blue(picture01%,Spr_X*Inc_X+j%,Spr_y*Inc_y+i%) next J% next i%
image File_Num for i%=0 to Spr_X for j%=0 to Spr_X
2d_pen_color tbl_red(i%,j%),tbl_green(i%,j%),tbl_blue(i%,j%) ' 2D_point 400+j%,60+i% 2D_point j%,i% next j% next i% 2d_image_copy File_Num,0,0,Spr_X,Spr_X file_save File_Num,File_nom$+str$(File_Num)+".bmp" Gosub Dess_rect
Return
Charge_fichier: filter Dir_Dial,"SpriteSheet | *.Bmp" rem puis l'utiliser File_nom$=file_name$(Dir_Dial)
2d_target_is picture01% file_load picture01%,File_nom$ ' stretch_on picture01% Return
Je recommande a chacun d'apporter les modifications qu'ils jugent nécessaires. Une des modifications a apporter est de Pouvoir mettre en noir le fond du sprite Faire un rotation de sprite a un angle... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Extracteur de sprites Mer 10 Aoû 2011 - 14:18 | |
| ^^ bien vu, j'avais modifié "temporairement" pour comprendre au départ mais j'avais oublié de remettre bien ... Pour les rotations gauche / droite / 180° / Miroir, tu verrais quoi comme touches ? | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Extracteur de sprites Mer 10 Aoû 2011 - 14:30 | |
| La lettre R pour rotation de 90 Mais il y a la symétrie qui est importante pourquoi pas y. Mais je suis entrain de chercher pour pouvoir faire une rotation de n'importe quel angle 10,20...
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Extracteur de sprites Mer 10 Aoû 2011 - 15:40 | |
| OK, je te laisse faire alors. La rotation "simple" (symétrie, rotation à 90 dans un sens ou dans l'autre), c'est facile avec ton programme en jouant avec les boucle for..next mais la rotation libre, c'est une autre paire de manches ... surtout que dans ce cas, on peut être amené à devoir redimenssionner le sprite
Dernière édition par Jicehel le Mer 10 Aoû 2011 - 18:29, édité 1 fois | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Extracteur de sprites Mer 10 Aoû 2011 - 17:21 | |
| Pas besoin de redimensionner les sprites Le sprites est inscrit dans un carré extérieur au sprite tu peut faire pivoter le sprite de 360 degré il sera toujour dans le carré de départ. Pour cela il faut prendre le centre du sprite. Tu t'occupe de l'autre alors Merci. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Extracteur de sprites Mer 10 Aoû 2011 - 18:40 | |
| Heu, 360° tu ne bouges pas ... !! Moi, je m'occupe de la rotation a 360 ° !! Le problème n'ai pas dans la rotation à 90, mais dans la rotation libre, car si tu tourne le carré, tu à l'angle qui sort du carré initial et un triangle non rempli dans l'angle du carré d'origine (mais ça on s'en fout puisqu'on peut le remplir par la couleur de fond dans notre cas). Pour la rotation libre, il y a donc 2 solution, soit agrandir la taille du carré initial avec de la couleur de fond pour que l'angle du carré "tourné" par exemple de 45° tienne dedans, soit couper le carré à la dimension du sprite d'origine (ce qui peut ne pas avoir d'importance s'il n'y a rien dans les angles). Bon, ce soir je m'occupe des rotations -90,90,180 et des miroirs aussi. J'ai pensais aussi à une fonction avec ton programme, pour mon monopoly starwars, comme j'avais pris des bout d'images pour faire les "cartes" j'avais parfois un problème de transparence involontaire. Je vais me servir de ton programme pour faire une fonction qui remplace les couleures noires à 0,0,0 par 0,0,1 (donc non transparent). Il faudrait que je fasse la même aussi pour quand on a des sprites sombre et que pour mieux les voir, on remplit le fond de rose, de bleu ou de rouge (une couleur précise) qui serait remplacée par 0,0,0 pour remettre la transparence dans les sprites. | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Extracteur de sprites Mer 10 Aoû 2011 - 18:55 | |
| Le carré autour du sprite ne tourne pas seuleument le sprite a l'intérieur. | |
| | | Contenu sponsorisé
| Sujet: Re: Extracteur de sprites | |
| |
| | | | Extracteur de sprites | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |