Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Partie 1] Tutorial Space Invaders (Traduction)
Auteur Message
Répondre en citant
Message [Partie 1] Tutorial Space Invaders (Traduction) 
Bonjour !

Je commence ce tutoriel sur la création d'un Space Invader en batch utilisant la commande externe bg.

Pour commencer, téléchargés la version 2.8 de la commande bg à l’adresse suivante :
Code:
http://code.google.com/p/bg-tool/


Maintenant, on va travailler dans le répertoire ``C:\batchgame\''
Mettez la version de bg que vous avez téléchargée.

Maintenant, voici comment on va procéder, d'une manière très progressive :

1- Définition des objets : monstres, vaisseaux etc.
2- Recherche de la taille de l'écran
3- écriture des sprites correspondants et leur affichage sur l'écran


On peut maintenant commencer :
1- Définition des objets : monstres, vaisseaux etc.

J'ai trouvé cette image sur google :


On va utiliser d'abord les six premiers monstres pour commencer, sans utiliser la soucoupe volante (on l'ajoutera a la fin)



Ceci est la traduction française du tutoriel [Part 1] Tutorial Space Invader de Carlos.
Il se peut qu'il ai des erreurs de traduction, merci de les reporter si vous en trouvez.




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Partie 1] Tutorial Space Invaders (Traduction) 


Le premier monstre a une taille de 11x8 pixels
Le second monstre a une taille de 12x8 pixels
Le troisième montre a une taille de 8x8 pixels

En utilisant une résolution d'écran de 1024 par 768 et en utilisant la taille de caractère par défaut de cmd.exe (8x12) la taille maximale de la fenêtre est 100x55
Mais, en utilisant la taille 4x6, la taille maximale est 250x55

NDT : Si vous ne comprenez pas les paramètres, ouvrez la console, clic droit sur la barre de titre >> propriétés >> onglet police


Donc, si l'on doit mettre 11 monstres, et qu'on prend en compte 2 pixels de bordure pour chaque monstre, comme la largeur maximale d'un monstre est 16*12, ça donne 16*11=176, donc la taille 4x6 permet d'afficher 11 monstres. Si, l'on met 3 lignes, alors il faut 12*3=36 lignes, donc, uniquement pour les monstres, on a besoin de 176*36 pixels. On utilisera donc 3 lignes de monstres, avec chacune 11 montres par ligne.



Ceci est la traduction française du tutoriel [Part 1] Tutorial Space Invader de Carlos.
Il se peut qu'il ai des erreurs de traduction, merci de les reporter si vous en trouvez.




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message [Partie 1] Tutorial Space Invaders (Traduction) 
On peut trouver un sprite du premier monstre dans la documentation de bg, mais uniquement pour une seule image (sans mouvement).

On va maintenant l'adapter pour afficher les monstres sur 3 lignes. En affichant 11 monstre et en répettant l'opération 3 fois, si c'est trop long, on essayera d'adapter
le code.

Pour éviter les calculs inutiles, J'ai ajouté une marge transparente à la bordure des sprites.




example1.cmd
Code:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Color 07
Mode Con Cols=200 Lines=110
Bg.exe Font 0

:monster1
Set "monster1.width=15"
Set "monster1.eight=12"
Set "monster1.color=3F"
Set "monster1="
Set "monster1=%monster1%\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n"
Set "monster1=%monster1%\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n"
Set "monster1=%monster1%\00\00\00\00\DB\00\00\00\00\00\DB\00\00\00\00\n"
Set "monster1=%monster1%\00\00\00\00\00\DB\00\00\00\DB\00\00\00\00\00\n"
Set "monster1=%monster1%\00\00\00\00\DB\DB\DB\DB\DB\DB\DB\00\00\00\00\n"
Set "monster1=%monster1%\00\00\00\DB\DB\20\DB\DB\DB\20\DB\DB\00\00\00\n"
Set "monster1=%monster1%\00\00\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\00\00\n"
Set "monster1=%monster1%\00\00\DB\00\DB\DB\DB\DB\DB\DB\DB\00\DB\00\00\n"
Set "monster1=%monster1%\00\00\DB\00\DB\00\00\00\00\00\DB\00\DB\00\00\n"
Set "monster1=%monster1%\00\00\00\00\00\DB\DB\00\DB\DB\00\00\00\00\00\n"
Set "monster1=%monster1%\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n"
Set "monster1=%monster1%\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n"

Set "con.X=1"
For /L %%R in (1,1,3) Do (
  Set "con.Y=1"
  For /L %%C in (1,1,11) Do (
    Bg.exe Sprite !con.X! !con.Y! %monster1.color% %monster1%
    Set /A "con.Y+=%monster1.width%"
  )
  Set /A "con.X+=%monster1.eight%"
)

Pause





Ceci est la traduction française du tutoriel [Part 1] Tutorial Space Invader de Carlos.
Il se peut qu'il ai des erreurs de traduction, merci de les reporter si vous en trouvez.




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message [Partie 1] Tutorial Space Invaders (Traduction) 
Maintenant, on va modifier le script pour mettre les monstres en mouvement :

test2.cmd
Code:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Color 07
Mode Con Cols=200 Lines=110
Bg.exe Font 0
Bg.exe Maximize


:monster1a
Set "monster1a.width=16"
Set "monster1a.eight=12"
Set "monster1a.color=F"
Set "monster1a="
Set "monster1a=%monster1a%\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\FF\FF\DB\FF\FF\FF\FF\FF\DB\FF\FF\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\FF\FF\FF\DB\FF\FF\FF\DB\FF\FF\FF\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\FF\FF\DB\DB\DB\DB\DB\DB\DB\FF\FF\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\FF\DB\DB\FF\DB\DB\DB\FF\DB\DB\FF\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\DB\FF\DB\DB\DB\DB\DB\DB\DB\FF\DB\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\DB\FF\DB\FF\FF\FF\FF\FF\DB\FF\DB\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\FF\FF\FF\DB\DB\FF\DB\DB\FF\FF\FF\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\n"
Set "monster1a=%monster1a%\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\n"

:monster1b
Set "monster1b.width=16"
Set "monster1b.eight=12"
Set "monster1b.color=F"
Set "monster1b="
Set "monster1b=%monster1b%\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\FF\FF\DB\FF\FF\FF\FF\FF\DB\FF\FF\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\DB\FF\FF\DB\FF\FF\FF\DB\FF\FF\DB\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\DB\FF\DB\DB\DB\DB\DB\DB\DB\FF\DB\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\DB\DB\DB\FF\DB\DB\DB\FF\DB\DB\DB\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\FF\DB\DB\DB\DB\DB\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\FF\FF\DB\FF\FF\FF\FF\FF\DB\FF\FF\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\FF\DB\FF\FF\FF\FF\FF\FF\FF\DB\FF\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\n"
Set "monster1b=%monster1b%\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\n"

:ani
Bg.exe Sleep 200

Set "con.X=1"
For /L %%R in (1,1,3) Do (
  Set "con.Y=1"
  For /L %%C in (1,1,11) Do (
    Bg.exe Sprite !con.X! !con.Y! %monster1a.color% %monster1a%
    Set /A "con.Y+=%monster1a.width%"
  )
  Set /A "con.X+=%monster1a.eight%"
)


Set "con.X=1"
For /L %%R in (1,1,3) Do (
  Set "con.Y=1"
  For /L %%C in (1,1,11) Do (
    Bg.exe Sprite !con.X! !con.Y! %monster1b.color% %monster1b%
    Set /A "con.Y+=%monster1a.width%"
  )
  Set /A "con.X+=%monster1a.eight%"
)

goto ani

Pause>Nul



On a changé les sprites en remplaçant ``\00'' (tansparent) par ``\FF'' (couleur de fond). En effet, ça permet d'éviter d'effacer le sprite avant d'en afficher un nouveau en mettant un fond opaque. Si on avait laissé le pixel transparent, on aurait obtenu quelque chose comme ça lorsqu'on aurait redessiné le sprite:



Du coup, il est préférable d'utiliser un sprite qui affiche aussi le fond du monstre, ce qui est plus simple pour la programmation. D'ou l'utilisation d'un caractère qui affiche le fond, comme l'espace (0x20) ou (0xFF). J'ai choisis le dernier pour la lisibilité du code.

Note : Si vous mettez la ligne
Code:
Bg.exe Sleep 200
en commentaire, vous verrez l'animation à la vitesse maximale.

Voici un apperçu de ce que ça donne :



On va ensuite ajouter les mouvements horizontaux aux monstres



Ceci est la traduction française du tutoriel [Part 1] Tutorial Space Invader de Carlos.
Il se peut qu'il ai des erreurs de traduction, merci de les reporter si vous en trouvez.




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Message [Partie 1] Tutorial Space Invaders (Traduction) 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch