Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Part 2] Tutorial Space Invader
Auteur Message
Répondre en citant
Message [Part 2] Tutorial Space Invader 
Hello. I will continue with the tutorial.
Now I'm using the bg 2.8 for this tutorial.

In the part 1, we end with this code:
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


Now I will plan the objectives:

-Write all monsters.
-Write the movement of the monsters.


In the above image I can look, that the movement that I want is: the last row of monsters movement to right, then the above row do the same and the new the same, when the last row do the movement to right, then the last row do it again, all in loop until, the last row found the limit in the right, then the last row down, and the above down, and next down, then the movement is for the left. Also, the last monster of a column can shot.



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Part 2] Tutorial Space Invader 
Now I will draw all monster and left it in a separate file called mon.cmd

I will have 5 monster types. I added 2 new monsters inspired in the space invaders of atari.


It looks with less zoom:




Dernière édition par carlos le Dim 25 Aoû 2013 - 06:39; édité 1 fois
Répondre en citant
Message [Part 2] Tutorial Space Invader 
Now I will programming thinking in pseudo object oriented programming, is more easy. (This can change after if we detect a mistake.)

We have our world.

-World have 1 nave, 4 domus, 55 monsters, top limit, right limit, down limit, left limit.
-Monster have: sprite, x position, y position, state(live / dead), bullet, link to monster to left, link to monster to right, link to monster to down, type of monster.
-Bullet have: sprite, x position, y position, owner(monster/nave), valid(hit/not hit).
-Nave have: sprite, x position, y position, bullet.
-Sprite: a image, a link to previous sprite, a link to next sprite.

Behaviors:

A monster can move to right and left and down. can shoot only if it not have a live monster down it. and if your bullet is hit.
A nave can move to right and left.



Dernière édition par carlos le Dim 25 Aoû 2013 - 09:56; édité 1 fois
Répondre en citant
Message [Part 2] Tutorial Space Invader 
mon.cmd version 5
Code:

::mon.cmd
::version 5

Set "mon.width=12"
Set "mon.eight=8"

Set "mon5.color=7"
Set "mon4.color=C"
Set "mon3.color=E"
Set "mon2.color=A"
Set "mon1.color=B"

:link sprite
For /L %%# In (1,1,5) Do (
Set "sprite.%%#a=%%#b"
Set "sprite.%%#b=%%#a"
)

:clean sprite
Set "mon1a="
Set "mon1b="
Set "mon2a="
Set "mon2b="
Set "mon3a="
Set "mon3b="
Set "mon4a="
Set "mon4b="
Set "mon5a="
Set "mon5b="


:mon1a
Set "mon1a=%mon1a%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon1a=%mon1a%\FF\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\FF\n"
Set "mon1a=%mon1a%\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\n"
Set "mon1a=%mon1a%\DB\DB\DB\FF\FF\DB\DB\FF\FF\DB\DB\DB\n"
Set "mon1a=%mon1a%\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\n"
Set "mon1a=%mon1a%\FF\FF\FF\DB\DB\FF\FF\DB\DB\FF\FF\FF\n"
Set "mon1a=%mon1a%\FF\FF\DB\DB\FF\DB\DB\FF\DB\DB\FF\FF\n"
Set "mon1a=%mon1a%\DB\DB\FF\FF\FF\FF\FF\FF\FF\FF\DB\DB\n"

:mon1b
Set "mon1b=%mon1b%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon1b=%mon1b%\FF\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\FF\n"
Set "mon1b=%mon1b%\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\n"
Set "mon1b=%mon1b%\DB\DB\DB\FF\FF\DB\DB\FF\FF\DB\DB\DB\n"
Set "mon1b=%mon1b%\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\n"
Set "mon1b=%mon1b%\FF\FF\DB\DB\DB\FF\FF\DB\DB\DB\FF\FF\n"
Set "mon1b=%mon1b%\FF\DB\DB\FF\FF\DB\DB\FF\FF\DB\DB\FF\n"
Set "mon1b=%mon1b%\FF\FF\DB\DB\FF\FF\FF\FF\DB\DB\FF\FF\n"

:mon2a
Set "mon2a=%mon2a%\FF\FF\FF\DB\FF\FF\FF\FF\FF\DB\FF\FF\n"
Set "mon2a=%mon2a%\FF\FF\FF\FF\DB\FF\FF\FF\DB\FF\FF\FF\n"
Set "mon2a=%mon2a%\FF\FF\FF\DB\DB\DB\DB\DB\DB\DB\FF\FF\n"
Set "mon2a=%mon2a%\FF\FF\DB\DB\FF\DB\DB\DB\FF\DB\DB\FF\n"
Set "mon2a=%mon2a%\FF\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\n"
Set "mon2a=%mon2a%\FF\DB\FF\DB\DB\DB\DB\DB\DB\DB\FF\DB\n"
Set "mon2a=%mon2a%\FF\DB\FF\DB\FF\FF\FF\FF\FF\DB\FF\DB\n"
Set "mon2a=%mon2a%\FF\FF\FF\FF\DB\DB\FF\DB\DB\FF\FF\FF\n"

:mon2b
Set "mon2b=%mon2b%\FF\FF\FF\DB\FF\FF\FF\FF\FF\DB\FF\FF\n"
Set "mon2b=%mon2b%\FF\DB\FF\FF\DB\FF\FF\FF\DB\FF\FF\DB\n"
Set "mon2b=%mon2b%\FF\DB\FF\DB\DB\DB\DB\DB\DB\DB\FF\DB\n"
Set "mon2b=%mon2b%\FF\DB\DB\DB\FF\DB\DB\DB\FF\DB\DB\DB\n"
Set "mon2b=%mon2b%\FF\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\DB\n"
Set "mon2b=%mon2b%\FF\FF\DB\DB\DB\DB\DB\DB\DB\DB\DB\FF\n"
Set "mon2b=%mon2b%\FF\FF\FF\DB\FF\FF\FF\FF\FF\DB\FF\FF\n"
Set "mon2b=%mon2b%\FF\FF\DB\FF\FF\FF\FF\FF\FF\FF\DB\FF\n"

:mon3a
Set "mon3a=%mon3a%\FF\FF\FF\FF\FF\DB\DB\FF\FF\FF\FF\FF\n"
Set "mon3a=%mon3a%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon3a=%mon3a%\FF\FF\FF\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "mon3a=%mon3a%\FF\FF\DB\DB\FF\DB\DB\FF\DB\DB\FF\FF\n"
Set "mon3a=%mon3a%\FF\FF\DB\DB\DB\DB\DB\DB\DB\DB\FF\FF\n"
Set "mon3a=%mon3a%\FF\FF\FF\DB\FF\DB\DB\FF\DB\FF\FF\FF\n"
Set "mon3a=%mon3a%\FF\FF\DB\FF\FF\FF\FF\FF\FF\DB\FF\FF\n"
Set "mon3a=%mon3a%\FF\FF\FF\DB\FF\FF\FF\FF\DB\FF\FF\FF\n"

:mon3b
Set "mon3b=%mon3b%\FF\FF\FF\FF\FF\DB\DB\FF\FF\FF\FF\FF\n"
Set "mon3b=%mon3b%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon3b=%mon3b%\FF\FF\FF\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "mon3b=%mon3b%\FF\FF\DB\DB\FF\DB\DB\FF\DB\DB\FF\FF\n"
Set "mon3b=%mon3b%\FF\FF\DB\DB\DB\DB\DB\DB\DB\DB\FF\FF\n"
Set "mon3b=%mon3b%\FF\FF\FF\FF\DB\FF\FF\DB\FF\FF\FF\FF\n"
Set "mon3b=%mon3b%\FF\FF\FF\DB\FF\DB\DB\FF\DB\FF\FF\FF\n"
Set "mon3b=%mon3b%\FF\FF\DB\FF\DB\FF\FF\DB\FF\DB\FF\FF\n"

:mon4a
Set "mon4a=%mon4a%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon4a=%mon4a%\FF\FF\FF\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "mon4a=%mon4a%\FF\FF\FF\DB\FF\DB\DB\FF\DB\FF\FF\FF\n"
Set "mon4a=%mon4a%\FF\FF\DB\DB\DB\DB\DB\DB\DB\DB\FF\FF\n"
Set "mon4a=%mon4a%\FF\FF\DB\FF\DB\FF\FF\DB\FF\DB\FF\FF\n"
Set "mon4a=%mon4a%\FF\FF\DB\FF\FF\DB\DB\FF\FF\DB\FF\FF\n"
Set "mon4a=%mon4a%\FF\FF\FF\DB\FF\DB\DB\FF\DB\FF\FF\FF\n"
Set "mon4a=%mon4a%\FF\FF\FF\DB\FF\FF\FF\FF\DB\FF\FF\FF\n"

:mon4b
Set "mon4b=%mon4b%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon4b=%mon4b%\FF\FF\FF\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "mon4b=%mon4b%\FF\FF\FF\DB\FF\DB\DB\FF\DB\FF\FF\FF\n"
Set "mon4b=%mon4b%\FF\FF\DB\DB\DB\DB\DB\DB\DB\DB\FF\FF\n"
Set "mon4b=%mon4b%\FF\FF\DB\FF\DB\FF\FF\DB\FF\DB\FF\FF\n"
Set "mon4b=%mon4b%\FF\FF\DB\FF\FF\DB\DB\FF\FF\DB\FF\FF\n"
Set "mon4b=%mon4b%\FF\FF\DB\FF\DB\FF\FF\DB\FF\DB\FF\FF\n"
Set "mon4b=%mon4b%\FF\FF\DB\FF\DB\FF\FF\DB\FF\DB\FF\FF\n"

:mon5a
Set "mon5a=%mon5a%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon5a=%mon5a%\FF\FF\FF\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "mon5a=%mon5a%\FF\FF\DB\DB\FF\DB\FF\DB\DB\DB\FF\FF\n"
Set "mon5a=%mon5a%\FF\FF\FF\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "mon5a=%mon5a%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon5a=%mon5a%\FF\FF\FF\FF\DB\FF\FF\DB\FF\FF\FF\FF\n"
Set "mon5a=%mon5a%\FF\FF\FF\DB\FF\DB\DB\FF\DB\FF\FF\FF\n"
Set "mon5a=%mon5a%\FF\FF\FF\FF\DB\FF\FF\DB\FF\FF\FF\FF\n"

:mon5b
Set "mon5b=%mon5b%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon5b=%mon5b%\FF\FF\FF\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "mon5b=%mon5b%\FF\FF\DB\DB\DB\FF\DB\FF\DB\DB\FF\FF\n"
Set "mon5b=%mon5b%\FF\FF\FF\DB\DB\DB\DB\DB\DB\FF\FF\FF\n"
Set "mon5b=%mon5b%\FF\FF\FF\FF\DB\DB\DB\DB\FF\FF\FF\FF\n"
Set "mon5b=%mon5b%\FF\FF\FF\FF\DB\FF\FF\DB\FF\FF\FF\FF\n"
Set "mon5b=%mon5b%\FF\FF\FF\DB\FF\FF\FF\FF\DB\FF\FF\FF\n"
Set "mon5b=%mon5b%\FF\FF\DB\FF\FF\FF\FF\FF\FF\DB\FF\FF\n"






Dernière édition par carlos le Dim 25 Aoû 2013 - 10:34; édité 2 fois
Répondre en citant
Message [Part 2] Tutorial Space Invader 
We have a 5 imaginary rows of monster, each with a different type of monster in the next order

row1= monster type 5
row2= monster type 4
row3= monster type 3
row4= monster type 2
row5= monster type 1

then we need create the 55 monsters, in the next order:

01,02,03,04,05,06,07,08,09,10,11
12,13,14,15,16,17,18,19,20,21,22
23,24,25,26,27,28,29,30,31,32,33
34,35,36,37,38,39,40,41,42,43,44
45,46,47,48,49,50,51,52,53,54,55

For reference to the next monster we sum 1, and for the previous will sub 1, for reference to the under monster we sum 11. for some monster that not have reference to left or right or under we reference it as 0.

game1.cmd
Code:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

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

::initialize sprite data
call mon.cmd


::coords for the first monster.
Set "x=10"
::Set "y=10"
::create 55 monsters
::every 11 monsters we change the type of monster
::each monster is separated of the next by 2.
Set "id=0"
For %%T In (5,4,3,2,1) Do (
   Set "y=10"
   For /L %%# In (1,1,11) Do (
      Set /A "id+=1"
      Set "monster_!id!.type=%%T"
      Set "monster_!id!.sprite=b"
      Set "monster_!id!.left=!id!-1"
      Set "monster_!id!.right=!id!+1"
      Set "monster_!id!.down=!id!+11"
      Set "monster_!id!.x=!x!"
      Set "monster_!id!.y=!y!"
      Set /A "y+=%mon.width%+2"
   )
   Set /A "X+=%mon.eight%+2"
)

::set the references to 0
For /L %%I In (45,1,55) Do Set "monster_%%I.down=0"
For %%I In (1,45) Do Set "monster_%%I.left=0"
For %%I In (11,55) Do Set "monster_%%I.right=0"





Répondre en citant
Message [Part 2] Tutorial Space Invader 
Now that I have our 55 monsters create we show it in the screen:

We have all our monster for begin show the sprite b, but it is for erase it and show the next.

Instead use:
pseudo code
Code:

If monster.sprite == b (
 use erase_mon_b
 set monster.sprite = a
 use mon_a
) else (
 use erase_mon_a
 set monster.sprite = b
 use mon_b
)


We will create a link for a to b, and b to a.

Code:

Set "sprite.a=b"
Set "sprite.b=a"


and use dereference or expansion for write some like this (pseudo code) :
Code:

  use erase_mon_%monster.sprite%
  set monster.sprite=!sprite.%monster.sprite%!
  use mon_!monster.sprite!


with this technique, we save if evaluations.



Répondre en citant
Message [Part 2] Tutorial Space Invader 
Note: I updated the code of mon.cmd (please get the last version)

Now will show the monsters using the imaginary rows from 5 to 1 and from left to right:
this is:

45,46,47,48,49,50,51,52,53,54,55
34,35,36,37,38,39,40,41,42,43,44
23,24,25,26,27,28,29,30,31,32,33
12,13,14,15,16,17,18,19,20,21,22
01,02,03,04,05,06,07,08,09,10,11

Also I added two new properties of the monsters: live and color

part2.cmd
Code:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

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

::initialize sprite data
call mon.cmd

:margins
Set "MONSTER.MARGIN.X=3"
Set "MONSTER.MARGIN.Y=2"

::coords for the first monster.
Set "x=10"
::Set "y=10"
::create 55 monsters
::every 11 monsters we change the type of monster
::each monster is separated of the next by 2.
Set "id=0"
For %%T In (5,4,3,2,1) Do (
   Set "y=10"
   For /L %%# In (1,1,11) Do (
      Set /A "id+=1"
      Set "monster_!id!.type=%%T"
      Set "monster_!id!.sprite=%%Tb"
      Set "monster_!id!.color=!mon%%T.color!"
      Set "monster_!id!.live=1"
      Set "monster_!id!.left=!id!-1"
      Set "monster_!id!.right=!id!+1"
      Set "monster_!id!.down=!id!+11"
      Set "monster_!id!.x=!x!"
      Set "monster_!id!.y=!y!"
      Set /A "y+=%mon.width%+%MONSTER.MARGIN.Y%"
   )
   Set /A "X+=%mon.eight%+%MONSTER.MARGIN.X%"
)

::set the references to 0
For /L %%I In (45,1,55) Do Set "monster_%%I.down=0"
For %%I In (1,45) Do Set "monster_%%I.left=0"
For %%I In (11,55) Do Set "monster_%%I.right=0"

:loop
::show in the screen
For %%I In (
45,46,47,48,49,50,51,52,53,54,55
34,35,36,37,38,39,40,41,42,43,44
23,24,25,26,27,28,29,30,31,32,33
12,13,14,15,16,17,18,19,20,21,22
1,2,3,4,5,6,7,8,9,10,11
) Do For %%S In (!monster_%%I.sprite!) Do (
  Bg.exe Sprite !monster_%%I.x! !monster_%%I.y! !monster_%%I.color! !mon%%S!
  Set "monster_%%I.sprite=!sprite.%%S!"
)
goto loop


Pause>Nul





Répondre en citant
Message [Part 2] Tutorial Space Invader 
with mon.cmd and part2.cmd
this looks like this:





Répondre en citant
Message [Part 2] Tutorial Space Invader 
Hello , good tuto but you can put it in french, please ?




______________________________________________________
Clickez sur Saturne pour voir mes tutoriels et sur la Terre pour voir mon Forum:


Skype
Répondre en citant
Message [Part 2] Tutorial Space Invader 
LG a écrit:
Hello , good tuto but you can put it in french, please ?


sorry, but i speak spanish, and try write in english.



Répondre en citant
Message [Part 2] Tutorial Space Invader 
Hello !

Ok guys : a translation is avaliable at :
http://batch.xoo.it/t3623-Partie-1-Tutorial-Space-Invaders-Traduction.htm

The next part will be following soon !

@+




______________________________________________________
--
> 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 [Part 2] Tutorial Space Invader 


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