Connexion

Récupérer mon mot de passe

Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 21 le Jeu 17 Oct 2013, 13:40
Derniers sujets
Flux RSS



Flag Counter
Partenaires

Minecraft TextGen

Voir le sujet précédent Voir le sujet suivant Aller en bas

Minecraft TextGen

Message par Dylan Gadacha le Mer 20 Nov 2013, 12:07

Salut !

Grâce à la commande HEX2PNG, je me suis fais un petit programme pour créer des textures aléatoires pour le jeu Minecraft. Il ne vous en sera d'aucunes utilités mais je poste quand même le code et un screen pour vous montrez ce que sa peut donner.

Alors, les textures de Minecraft ont une résolution de 16x16 et se présente comme tel: (ici, la texture du bloc "stone')



Mon programme consiste donc à créer des textures aléatoirement a partir d'un fichier qu'il faut créer avec Notepad et l'enregistrer avec l'extension .MTG. Ce sont les infos de la textures. Il se présente comme tel:


Code:
Minecraft TextGen 1.0 - STONE
#0 808080
#1 998877
#2 404040
La première ligne n'est pas obligatoire.
Le reste, ce sont les couleurs disponible pour créer la texture.
#0 est le "numéro" de la couleur et 808080 la couleur.
Ici, nous avoir 3 types de gris.

Code:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
COLOR 0F
TITLE Minecraft TextGen 1.0
SET /P "TEXTURE=TEXTURE: "
SET "BLOCK=0"
IF NOT EXIST %TEXTURE%.MTG EXIT
IF EXIST MTG_%TEXTURE% DEL MTG_%TEXTURE%.TXT
ECHO 16;16;%TEXTURE%.PNG;256>MTG_%TEXTURE%.TXT
:LOOP
IF "!BLOCK!" EQU "256" GOTO END
IF "!BLOCK!" NEQ "256" (
  SET /A "PIXEL=%RANDOM%%%3"
  FOR /F "TOKENS=2 DELIMS= " %%A IN ('TYPE %TEXTURE%.MTG ^| FIND "#!PIXEL!"') DO (
    ECHO %BLOCK%/256
    ECHO %%AFF>>MTG_%TEXTURE%.TXT
  )
  SET /A "BLOCK+=1"
  GOTO LOOP
)
:END
HEX2PNG MTG_%TEXTURE%.TXT
EXIT
Ce code génère un autre code qui sera retranscrit avec HEX2PNG.

Je sais très bien que j'aurais pu remplacer cette boucle avec des for, c'est ce que j'ai fais au début, mais j'ai eu un problème avec la réinitialisation du random. Bref.

Voici un exemple de ce que l'on peut avoir avec les 3 gris de STONE.MTG:

Code:
16;16;STONE.PNG;256
404040FF
998877FF
404040FF
998877FF
808080FF
998877FF
998877FF
808080FF
404040FF
404040FF
404040FF
998877FF
998877FF
404040FF
998877FF
998877FF
404040FF
808080FF
808080FF
998877FF
404040FF
808080FF
998877FF
404040FF
808080FF
404040FF
404040FF
998877FF
998877FF
808080FF
404040FF
808080FF
404040FF
998877FF
404040FF
808080FF
998877FF
808080FF
998877FF
808080FF
998877FF
998877FF
998877FF
404040FF
404040FF
998877FF
998877FF
404040FF
808080FF
998877FF
998877FF
808080FF
808080FF
808080FF
404040FF
404040FF
998877FF
808080FF
998877FF
404040FF
404040FF
808080FF
404040FF
404040FF
808080FF
998877FF
998877FF
808080FF
808080FF
998877FF
998877FF
404040FF
404040FF
998877FF
404040FF
998877FF
808080FF
404040FF
998877FF
998877FF
808080FF
808080FF
998877FF
404040FF
808080FF
998877FF
404040FF
404040FF
404040FF
404040FF
808080FF
998877FF
404040FF
998877FF
808080FF
404040FF
808080FF
404040FF
998877FF
998877FF
998877FF
404040FF
808080FF
404040FF
808080FF
998877FF
404040FF
998877FF
998877FF
998877FF
404040FF
808080FF
998877FF
404040FF
998877FF
404040FF
808080FF
998877FF
998877FF
808080FF
998877FF
998877FF
998877FF
998877FF
404040FF
808080FF
404040FF
808080FF
998877FF
404040FF
404040FF
404040FF
998877FF
404040FF
808080FF
808080FF
998877FF
808080FF
808080FF
998877FF
808080FF
998877FF
808080FF
998877FF
998877FF
998877FF
404040FF
808080FF
998877FF
404040FF
404040FF
998877FF
404040FF
998877FF
998877FF
998877FF
808080FF
808080FF
998877FF
808080FF
808080FF
808080FF
808080FF
998877FF
808080FF
404040FF
808080FF
998877FF
404040FF
404040FF
404040FF
998877FF
808080FF
998877FF
404040FF
808080FF
998877FF
998877FF
808080FF
808080FF
404040FF
808080FF
404040FF
998877FF
998877FF
404040FF
404040FF
808080FF
998877FF
808080FF
998877FF
808080FF
808080FF
998877FF
808080FF
808080FF
808080FF
808080FF
808080FF
404040FF
808080FF
404040FF
998877FF
998877FF
404040FF
998877FF
808080FF
808080FF
998877FF
998877FF
998877FF
404040FF
808080FF
998877FF
808080FF
998877FF
808080FF
998877FF
404040FF
998877FF
808080FF
998877FF
998877FF
404040FF
998877FF
404040FF
404040FF
808080FF
808080FF
808080FF
998877FF
404040FF
404040FF
808080FF
998877FF
404040FF
998877FF
808080FF
998877FF
404040FF
998877FF
808080FF
404040FF
808080FF
998877FF
998877FF
808080FF
998877FF
404040FF
404040FF
404040FF
808080FF
998877FF
998877FF
404040FF
998877FF
Ce qui nous donne:



On peut donc avoir un très grand nombre de possibilités !

Voila, c'était juste pour poster quelque chose  

Dylan.
avatar
Dylan Gadacha
EQUIPE BBAT
EQUIPE BBAT

Mensagens : 106
Data de inscrição : 24/10/2013
Idade : 18

Revenir en haut Aller en bas

Re: Minecraft TextGen

Message par Dylan Gadacha le Mer 20 Nov 2013, 14:03

MAJ V3 (La V2 n'ayant pas été posté du à trop de bug que j'ai pu corriger).
Il faut désormais rajouté une ligne afin d'indiquer le nombre de couleurs sous cette forme: 
#COLOR [NOMBRE DE COULEURS]
Code:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
COLOR 0F
TITLE Minecraft TextGen 2.0
SET /P "TEXTURE=TEXTURE: "
SET "BLOCK=0"
FOR /F "TOKENS=2 DELIMS= " %%A IN ('TYPE %TEXTURE%.MTG ^| FIND "!TEXTURE!"') DO (SET "C=%%A")
IF NOT EXIST %TEXTURE%.MTG EXIT
IF EXIST MTG_%TEXTURE% DEL MTG_%TEXTURE%.TXT
ECHO 16;16;%TEXTURE%.PNG;256>MTG_%TEXTURE%.TXT
:LOOP
IF "!BLOCK!" EQU "256" GOTO END
IF "!BLOCK!" NEQ "256" (
  SET /A "PIXEL=%RANDOM%%%!C!"
  FOR /F "TOKENS=2 DELIMS= " %%B IN ('TYPE %TEXTURE%.MTG ^| FIND "#!PIXEL!"') DO (
    ECHO %%BFF>>MTG_%TEXTURE%.TXT
    TITLE Minecraft TextGen 2.0 - [%BLOCK%/256]
  )
  SET /A "BLOCK+=1"
  GOTO LOOP
)
:END
HEX2PNG MTG_%TEXTURE%.TXT
EXIT
Dylan.
avatar
Dylan Gadacha
EQUIPE BBAT
EQUIPE BBAT

Mensagens : 106
Data de inscrição : 24/10/2013
Idade : 18

Revenir en haut Aller en bas

Re: Minecraft TextGen

Message par Dylan Gadacha le Mer 20 Nov 2013, 18:08

MAJ: Super MTG
Réécriture totale du code pour une vitesse optimale, 5 secondes pour une image 16x16 !
Plus besoin de passer par un fichier,  les modification se font depuis le code source. Bientôt, une interface utilisateur !
Code:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
COLOR 0F
TITLE Super Minecraft TextGen
SET "WIDTH=16"
SET "HEIGHT=16"
SET "C=3"
SET /A "TOTAL=%WIDTH%*%HEIGHT%"
SET "#0=0000CC"
SET "#1=0033CC"
SET "#2=0066CC"

SET /A "TOTAL=!WIDTH!*!HEIGHT!"
ECHO %WIDTH%;%HEIGHT%;BLOCK.PNG;%TOTAL%>MTG_BLOCK.TXT
FOR /L %%D IN (0,1,!TOTAL!) DO (
  CALL:COLOR
  ECHO !LINE!FF>>MTG_BLOCK.TXT
  TITLE Super Minecraft TextGen - [%%D/!TOTAL!]  ))HEX2PNG MTG_BLOCK.TXTEXIT:COLORSET /A "PIXEL=%RANDOM%%%!C!"SET "LINE=!#%PIXEL%!"
GOTO:EOF
Dylan.


Dernière édition par Dylan Gadacha le Jeu 21 Nov 2013, 00:20, édité 2 fois
avatar
Dylan Gadacha
EQUIPE BBAT
EQUIPE BBAT

Mensagens : 106
Data de inscrição : 24/10/2013
Idade : 18

Revenir en haut Aller en bas

Re: Minecraft TextGen

Message par Sachadee le Mer 20 Nov 2013, 21:10

Là ça me plaît déjà mieux.... Et j'attend avec impatience L'interface utilisateur.



_________________
@SachaDee
avatar
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

http://bbat.forumeiro.com

Revenir en haut Aller en bas

Re: Minecraft TextGen

Message par Dylan Gadacha le Ven 22 Nov 2013, 15:00

Nouvelle version qui n'était pas prévue mais qui est finalement utile: Minecraft TextGen FE
Amélioration: Permet la création de textures sans passer par le code source mais en créant vos fichiers .MTG (même principe que pour MTG 1.0) tout en conservant la rapidité de SMTG. Désormais, vous n'avez plus qu'a glisser votre fichier .MTG dessus l'application. Ah et dans votre fichier .MTG, définissez la taille de l'image en écrivant 
[LARGEUR];[HAUTEUR]. Exemple: 16;16.
Code:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
COLOR 0F
TITLE Minecraft TextGen FE
IF "%~X1" NEQ ".MTG" EXIT
IF EXIST TEXTURE.TXT DEL TEXTURE.TXT
FOR /F "TOKENS=1 DELIMS=;" %%A IN ('TYPE %1 ^| FIND ";"') DO (SET "WIDTH=%%A")
FOR /F "TOKENS=2 DELIMS=;" %%B IN ('TYPE %1 ^| FIND ";"') DO (SET "HEIGHT=%%B")
SET /A "TOTAL=%WIDTH%*%HEIGHT%"
FOR /F "TOKENS=*" %%C IN ('TYPE %1 ^| FIND "#"') DO (SET /A "C+=1")
FOR /L %%D IN (0,1,!C!) DO (
  FOR /F "TOKENS=2 DELIMS= " %%E IN ('TYPE %1 ^| FIND "#%%D"') DO (SET "#%%D=%%EFF")
)
SET /A "TOTAL=!WIDTH!*!HEIGHT!"
ECHO %WIDTH%;%HEIGHT%;BLOCK.PNG;%TOTAL%>TEXTURE.TXT
FOR /L %%F IN (0,1,!TOTAL!) DO (
  CALL:COLOR
  ECHO !LINE!>>TEXTURE.TXT
  TITLE Minecraft TextGen FE - [%%F/!TOTAL!]
  )
)
HEX2PNG TEXTURE.TXT
EXIT
:COLOR
SET /A "PIXEL=%RANDOM%%%!C!
SET "LINE=!#%PIXEL%!"
GOTO:EOF
Dylan.
avatar
Dylan Gadacha
EQUIPE BBAT
EQUIPE BBAT

Mensagens : 106
Data de inscrição : 24/10/2013
Idade : 18

Revenir en haut Aller en bas

Re: Minecraft TextGen

Message par Sachadee le Ven 22 Nov 2013, 16:00


_________________
@SachaDee
avatar
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

http://bbat.forumeiro.com

Revenir en haut Aller en bas

Re: Minecraft TextGen

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum