Omnimaga

Calculator Community => [FR] Section Francophone => [FR] Programmation Axe Parser => Topic started by: kindermoumoute on May 26, 2010, 08:31:42 am

Title: [Axe parser] : projet worms
Post by: kindermoumoute on May 26, 2010, 08:31:42 am
J'ai déjà vu des versions de worms en TI basic, lente, mais qui marchait à peu près bien. Avec Axe Parser, on a la possibilité de le faire rapide ET bien, je voudrais faire un jeu qui respecte le jeu worms armageddon original, avec de bon graphiques, un système de jeu avec les armes principal (possibilité de roper pour les connaisseurs), multijoueur et mode un joueur éventuellement.
Si certains sont intéressé par ce projet, faites moi signe ;)

PS : traduction by google pour les anglais :
Spoiler For Spoiler:
I've seen versions of worms TI basic, slow, but walked about right. With Axe Parser, we have the opportunity to do good AND fast, I want to make a game that respects the game worms armageddon original, with good graphics, a game system with the main weapons (roper opportunity for connoisseurs) multiplayer and single player mode eventually.
If some are interested in this project, please let me know ;)

Screen :
(http://www.omnimaga.org/index.php?action=dlattach;topic=3328.0;attach=5681;image)
Title: Re: [Axe parser] : projet worms
Post by: ztrumpet on May 26, 2010, 08:38:58 am
anglais : That sounds really cool.  I think it's a great project.  Good luck on it! ;D

français (google translator) : Cela semble vraiment cool. Je pense que c'est un grand projet. Bonne chance pour elle! ;D
Title: Re: [Axe parser] : projet worms
Post by: TIfanx1999 on May 26, 2010, 09:44:12 am
Very nice! I really like the worms games! =)

Très bien ! J'aime beaucoup le vidéo jeu de worms ! =)
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on May 26, 2010, 09:53:21 am
Merci pour l'instant je vais essayer de trouver de faire la partie graphique et après les déplacements.

Thank you for now I'll try to find the graphics and after travel.
http://ourl.ca/5924/91598 (http://ourl.ca/5924/91598)

PS : Thank you to translate your comments ;)
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on May 26, 2010, 12:51:35 pm
(wow Google translate has improved a lot it seems)

Nice comme projet. Est-ce que le jeu Worms dont tu parle est comme l'ancien projet TI Tinyworms? Je me rapelle de ce projet et j'était décu de voir qu'il ne serait jamais complété à l'époque :(

http://www.ticalc.org/archives/files/fileinfo/266/26607.html
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on May 26, 2010, 12:56:47 pm
Exacte il y a celui la, mais aussi d'autre qui fonctionnait mais dont les graphique ne ressemblait à rien.
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on May 26, 2010, 01:01:15 pm
oui je crois que j'en avais vu d'autres qui n'étaient pas terrible :(

Ce serait bien d'en avoir un beau, complété, finallement ^^
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on May 28, 2010, 04:08:47 pm
Bon voilà.. après plusieurs jours de travail, j'arrive à un résultat :
je peut marcher de gauche à droite sans problème
faire un grand saut en avant en appuyant une fois sur entré, faire un petit saut en arrière en appuyant 2 fois sur entré (je respecte même les touches originales ;) ) et le tout en empêchant d'avancer en même temps ou de changer de direction dans les airs (toujours en respectant le jeu =)
Et des petits murs sont la pour stopper le tout.

N'hésitez pas à me dire si il faut mettre plus de pixel dans les sauts, ou autre chose.


Google traduction : Good here .. after several days of work, I can come up:
I can walk from left to right without problem
make a great leap forward by pressing once entered, make a small jump backwards by pressing two times came on (I even respect the original keys;) ) and forward while preventing at the same time or change direction in the air (always respecting the game =)
And small walls are there to stop everything.

Please tell me if he should put more pixels in the jumps, or something.
Title: Re: [Axe parser] : projet worms
Post by: Silver Shadow on May 28, 2010, 05:02:17 pm
Faudrait peut-être remplacer Enter par 2nd, qui est la touche la plus utilisée pour les jeux. Parce que sinon Enter est un peu trop éloigné des touches directionnelles, ce qui n'est pas vraiment pratique.
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on May 28, 2010, 11:41:54 pm
Nice, ça avance ^^

Je crois que le saut devrait être d'environ 7 ou 8 pixels de hauteur. Et je crois aussi que la touche ENTER par 2nd, vu que les joueurs aime tenir leur TI comme un GameBoy ou une manette de jeu :)
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on May 29, 2010, 05:18:56 am
En faite je contait mettre 2nd pour le tir :/
Mais je pense que le jeu est beaucoup ralentit par le fait qu'il détecte si on appuie 1 ou 2 fois sur enter (je suis obligé de mettre des pause :s)
Donc j'essayerais de trouver un bon compromit pour garder une bonne réactivité et de la vitesse.
Title: Re: [Axe parser] : projet worms
Post by: Silver Shadow on May 29, 2010, 08:00:13 am
Utilise Alpha dans ce cas. ^^
Et je pense qu'il vaudrait mieux utiliser 2 touches séparées pour le saut avant et le saut arrière. Il faut pas se compliquer la vie pour rien, surtout si le programme s'en trouve ralenti. Le but n'est pas de faire une copie exacte du jeu, mais plutôt une version adaptée aux calculatrices.
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on May 29, 2010, 07:00:53 pm
il faut quand même faire attention à la taille du jeu, par contre. Si il y a trop de code, on pète la limite de 8 Ko de code executable compilé rapidement (qui exclut les données comme les sprites et les maps, heureusement)
Title: Re: [Axe parser] : projet worms
Post by: [email protected] on May 30, 2010, 11:02:03 am
C'est quoi cette histoire de limite de 8 ko ?
Title: Re: [Axe parser] : projet worms
Post by: Silver Shadow on May 30, 2010, 12:33:27 pm
Normalement, les programmes en assembleur ne peuvent pas dépasser 8192 octets, dû au fait que lorsqu'ils sont executés, ils sont d'abord copiés vers un endroit de la RAM (c'est cet endroit qui est de 8192 octets), puis cette copie est lancée.
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on May 30, 2010, 12:33:53 pm
C'est bon pour la touche entré j'ai trouvé une solution qui ne devrait pas ralentir le programme, cela dit si il y a une limite dite le moi, je suis déjà à 2 ko (mais je pense qu'il sera possible de réduire de moitié la taille si j'améliore certaines choses).
Title: Re: [Axe parser] : projet worms
Post by: Silver Shadow on May 30, 2010, 01:44:35 pm
Personnellement, tant que la taille ne dépasse pas 23ko, elle ne me gène pas.
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on May 30, 2010, 11:29:09 pm
Je n'ai pas de problème avec la taille. Tant que ça entre dans la RAM et mon archive je vais jouer quand même ^^

Aussi, pour le code (ne comprennant pas les données comme les maps et les sprites) la limite de 8 Ko est présente sur les prog en ASM aussi, ce qui explique pourquoi il y a si peu de RPG sur z80 en format 8xp. Par contre il est possible de la contourner en faisant un jeu hybride TI-BASIC, ASM (le prog XCOPY de Iambian) et plusieur prog Axe, un peu comme mon jeu Illusiat 13
Title: Re: [Axe parser] : projet worms
Post by: [email protected] on May 31, 2010, 01:16:46 pm
Ok merci de m'avoir prévenu avant que je fasse des jeux énormes
Title: Re: [Axe parser] : projet worms
Post by: AaroneusTheGreat on June 01, 2010, 01:47:58 am
Bon chance avec ce jeu, ce ressemble à un bon projet. Je ne peux pas attendre de voir de plus.
Title: Re: [Axe parser] : projet worms
Post by: mapar007 on July 04, 2010, 09:27:21 am
En fait, on peut dépasser la limite de 8ko, mais je doute que ce soit possible en Axe.
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on July 04, 2010, 06:51:04 pm
On peut faire des application Flash, mais pour les signer, c'est un peu plus compliqué. Il faut que tu lise les instructions de RabbitSign sur Ticalc.org. Par contre en APP, tu peux avoir 16 Ko de code compilé si tu veux, en Axe. Sinon, la limite est de 8 Ko, comme les jeux Ion et MirageOS
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on November 06, 2010, 05:36:52 pm
J'ai trouvé un peu de temps pour avancer les worms, j'ai fait le une map, j'aimerais que vous me disiez ce que vous en pensez (trop grande ? peut être ?)
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on November 07, 2010, 01:04:24 am
Cool! Je suis content que tu travailles encore sur ce jeu :D

j'aime les graphismes pour l'instant. Est-ce qu'il va y avoir des cartes ou tu est dans une grotte aussi, comme le vieux TI-Ny Worms sur TIcalc?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on November 07, 2010, 06:29:38 am
Surement, mais avant de faire cela il faut que j'assimile plusieurs trucs à cette map, d'abord je met le worms, puis en fonction de la direction gauche ou droite je change la sprite, puis je bouge en m'arrêtant la ou une tile sera présente (gauche/droite, haut/bas) mais là j'arrive pas encore. Puis je pensais faire les animations de déplacement (comme sur la version sans map) à l'aide des commandes horizontal +- et vertical +- (là encore c'est pas évident). Puis un système de jeu apparaîtrait sans destruction de terrain pour l'instant.

Au niveau des map je compte mettre les textures soit dans la même appvars que la map, soit dans une autre (peut être plus facile d'accès). Et je compte enlever le niveaux de gris sur la map, pour pouvoir faire un fond d'écran.

EDIT : new update ;) :
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on November 07, 2010, 01:04:24 pm
Wow très cool jusqu'à date. Il y a quelques bugs d'affichage mais à par ça c'est très beau :D

Pours les cotés je crois que tu vas devoir afficher une colonne suplémentaire de sprites, à moins que tu veuilles garder ça comme ca pour faire un éffet Nintendo NES 8-bit (ça fait ça dans les jeux de cette console aussi, durant le scrolling). Sinon, tu pourrais mettre deux rectangles noirs de chaque coté. Pour le haut il faut soit ajouter pleins de data pour remplir le haut assez pour que ça ne bug pas quand on monte trop haut ou bien ne pas afficher les sprites à un certain point.
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on November 07, 2010, 01:25:39 pm
Ou sinon il suffirait de mettre un 0 dans un mur à gauche ou à droite pour avoir accès à une map infini ;D
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on January 19, 2011, 04:19:25 pm
New screen, multiplayer fix.
Normally game can be saved, but don't work on my emulator (work on 83+ !).
Title: Re: [Axe parser] : projet worms
Post by: yunhua98 on January 19, 2011, 04:30:33 pm
that looks awesome!  do you plan on letting you or someone else translate it to English at some point?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on January 20, 2011, 02:13:40 am
I can translate, but for the moment there is just 2 words in french.
Title: Re: [Axe parser] : projet worms
Post by: mdr1 on January 22, 2011, 08:59:04 am
Salut kindermoumoute ! je te souhaite bien du courage pour ton jeu : comptes-tu mettre à disposition le code source ?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on January 22, 2011, 10:40:51 am
Oui, je met seulement ceux de la map, des tiles et du programme principale, car je n'ai pas encore fini l'éditeur de map :

La map :
Code: [Select]
:.INIMAP
:[000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]→GDB1
:[000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]
:[000038888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888884]
:[000063888888888888888888888888888888438888888888888888888888888888888888888888888888888888888888888845]
:[000066BC0000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000055]
:[000066BCA00000000000000000000000000955A000000000000000000000000000000000000000000000000000000000000955]
:[000066BC0000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000055]
:[000066BC0000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000055]
:[000066BC0000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000055]
:[000066BC0000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000055]
:[000066BC0000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000055]
:[000066BC0000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000055]
:[000066BC0000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000055]
:[000066BC0000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000055]
:[000062777777777777777777740000000000550000000000340000000000388888888888888888888888888884000000000055]
:[000063888888888888888888810000000000550000000000560000000000288888888888888888888888888845000000000055]
:[00006600000000000000000000000000000055000000000056000000000000000000000000000000000000BC55000000000055]
:[000066A0000000000000000000000000000055000000000056000000000000000000000000000000000009BC55000000000055]
:[00006600000000000000000000000000000055000000000056000000000000000000000000000000000000BC55000000000055]
:[00006600000000000000000000000000000055000000000056000000000000000000000000000000000000BC55000000000055]
:[00006600000000000000000000000000000055000000000056000000000000000000000000000000000000BC55000000000055]
:[00006600000000000000000000000000000055000000000056000000000000000000000000000000000000BC55000000000055]
:[00006600000000000000000000000000000055000000000056000000000000000000000000000000000000BC55000000000055]
:[00006600000000000000000000000000000055000000000056000000000000000000000000000000000000BC55000000000055]
:[000066000000000377777777777777777777150000000000527777777777777777777777777777777777777715000000000055]
:[000066000000000277777777777777777777710000000000538888888888888888888888888888888888888881000000000055]
:[00006600000000000000000000000000000000000000000055BC00000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BCA0000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BC00000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BC00000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BC00000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BC00000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BC00000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BC00000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BC00000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BC00000000000000000000000000000000000000000000000055]
:[00006600000000000000000000000000000000000000000056BC00000000000000000000000000000000000000000000000055]
:[000062777777777777777777777777777777777777777777127777777777777777777777777777777777777777777777777715]
:[000027777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771]
:[000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]
:[000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]
:vMAP"→Str1
:If GetCalc(Str1)
: DelVar Str1
:End
:UnArchive Str1
:If GetCalc(Str1)
: DelVar Str1
:End
:GetCalc(Str1,1989)→A
:conj(GDB1,A,1989)
:Archive Str1


Les tiles (NB : j'enlèverai le code en surplus, c'était pour les 4 grayscales que je mettait au début) :
Code: [Select]
:.INITILE
:.Pour le buffer
:[0000000000000000→GDB1
:.Angle bas droite
:[DBDB1BFBFB03FFFF]
:.Angle bas gauche
:[DBDBD8DFDFC0FFFF]
:.Angle haut gauche
:[FFFFC0DFDFD8DBDB]
:.Angle haut droite
:[FFFF03FBFB1BDBDB]
:.Vertical
:[DBDBDBDBDBDBDBDB]
:[DBDBDBDBDBDBDBDB]
:.Horizontal
:[FFFF00FFFF00FFFF]
:[FFFF00FFFF00FFFF]
:.Hide droit
:[FF7F3F1F0F070301]
:.Hide gauche
:[FFFEFCF8F0E0C080]
:.Walls
:[CCCC666633336666]
:[CCCC666633336666]
:
:
:
:.Pour le back buffer
:[0000000000000000]
:.Angle bas droite
:[DBDB1BFBFB03FFFF]
:.Angle bas gauche
:[DBDBD8DFDFC0FFFF]
:.Angle haut gauche
:[FFFFC0DFDFD8DBDB]
:.Angle haut droite
:[FFFF03FBFB1BDBDB]
:.Vertical
:[DBDBDBDBDBDBDBDB]
:[DBDBDBDBDBDBDBDB]
:.Horizontal
:[FFFF00FFFF00FFFF]
:[FFFF00FFFF00FFFF]
:.Hide droit
:[FF7F3F1F0F070301]
:.Hide gauche
:[FFFEFCF8F0E0C080]
:.Walls
:[CCCC666633336666]
:[CCCC666633336666]
:
:vTILE"→Str1
:If GetCalc(Str1)
: DelVar Str1
:End
:UnArchive Str1
:If GetCalc(Str1)
: DelVar Str1
:End
:GetCalc(Str1,208)→A
:conj(GDB1,A,208)
:Archive Str1

Programme principale :
Code: [Select]
:.AWA
:identity(07E00810300C24244C329C3980018181818180019C394C322424300C081007E0)
:"<fonct>v</fonct>MAP"→Str1
:"<fonct>v</fonct>TILE"→Str2
:ClrHome
:0→N→Θ
:sub(NOG)
:[00→Pic8N
:Repeat getKey(9)
:getKey(10) and (N<7)-(getKey(11) and (N>0))+N→N
:If getKey(14)
:{Pic8N}→N
:1→Θ
:Goto 8N
:End
:sub(NOG)
:Text(0,0,"Nbre Joueur :",N+1►Dec
:End
:N→{Pic8N}
:Lbl 8N
:sub(NOG)
:
:If GetCalc(Str1)→D
:Goto DA
:End
:UnArchive Str1
:If GetCalc(Str1)→D
:Goto DA
:End
:Text(10,16,"PAS DE LICENCE
:Repeat getKey(9)
:End
:Return
:
:Lbl DA
:If GetCalc(Str2)→E
:Goto DB
:End
:UnArchive Str2
:If GetCalc(Str2)→E
:Goto DB
:End
:Text(10,16,"PAS DE LICENCE
:Repeat getKey(9)
:End
:Return
:
:Lbl DB
:[788CD4D4864B613E→Pic1
:[78DCD484CA62211F00788CD4D785493E]
:
:[7088DCDA8E4E4830→Pic2
:[7088DCDA8E4E4A30]
:[7088DCDB8F4E4A30]
:[7088DCDB8F4E4830]
:
:[003E539696533E00→Pic3
:[F08C92B14143261D]
:
:
:0→W→J→Z→H+1→T
:8→O
:40→U
:32→V
:∆List(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)→GDB0
:!If Θ
:For(Θ,0,N)
:rand^94+7→{Θ*3+GDB0}
:rand^33+5→{Θ*3+GDB0+1}
:Repeat sub(GN,5+{Θ*3+GDB0},4+{Θ*3+GDB0+1})=0
:rand^94+7→{Θ*3+GDB0}
:rand^33+5→{Θ*3+GDB0+1}
:End
:0→{Θ*3+GDB0+2}
:End
:End
:ClrDraw
:ClrDraw<sup>r</sup>
:FnOff
:N+1→M
:0→N
:Repeat getKey(15)
:If getKey(12)
:N+1→N
:!If N<M
:0→N
:End
:sub(NOG)
:0→J
:End
:If getKey(49)
:1-J→J
:sub(NOG)
:End
:If J
:sub(AXY)
:End
:sub(AXX)
:
:.Fonction dessin
:sub(FD)
:.gravité
:sub(G)
:If J
:sub(JET)
:Else
:sub(0)
:End
:End
:Archive Str1
:Archive Str2
:Return
:
:Lbl NOG
:While getKey(0)
:Pause 2
:End
:Return
:
:Lbl G
:For(Θ,0,M)
:If sub(GN,5+{Θ*3+GDB0},5+{Θ*3+GDB0+1})=0 and (getKey(4)=0
:{Θ*3+GDB0+1}+1→{Θ*3+GDB0+1}
:End
:End
:Return
:
:Lbl DS
:!If J
:If 1-H→H
:sub(0)
:Else
:!If 1-Z→Z
:sub(8)
:Else
:sub(16)
:End
:End
:End
:Return
:
:Lbl SE
:sub(GR)
:DispGraph
:sub(GR)
:Return
:
:Lbl GR
:For(Θ,0,M)
:{Θ*3+GDB0}-{N*3+GDB0}*8+40→U
:{Θ*3+GDB0+1}-{N*3+GDB0+1}*8+32→V
:If U<96 and (V<64
:
:If {Θ*3+GDB0+2}
:Pt-Change(U,V,r<sub>1</sub>
:Else
:Pt-Change(U,V,ShadeϜ(r<sub>1</sub>)
:End
:End
:End
:40→U
:32→V
:Return
:
:Lbl 0
:sub(SE,Pic1)
:Return
:Lbl 8
:sub(SE,Pic1+8)
:Return
:Lbl 16
:sub(SE,Pic1+16)
:Return
:Lbl SN
:sub(SE,ShadeNorm(Pic1))
:Return
:Lbl S
:sub(SE,Shadeχ²(Pic1))
:Return
:Lbl ST
:sub(SE,Shade_t(Pic1))
:Return
:Lbl JET
:sub(SE,T*8+Pic2)
:Return
:
:Lbl AXY
:If getKey(4) and (sub(GN,5+{N*3+GDB0},3+{N*3+GDB0+1})=0
:{N*3+GDB0+1}-1→{N*3+GDB0+1}
:1→T
:sub(DS,0,0,4)
:Else
:0→T
:End
:Return
:
:Lbl AXX
:If getKey(3) and (sub(GN,6+{N*3+GDB0},4+{N*3+GDB0+1})=0
:If T=1
:2→T
:Else
:3→T
:End
:!If {N*3+GDB0+2}
:{N*3+GDB0}+1→{N*3+GDB0}
:sub(DS,0,0,1)
:Else
:0→{N*3+GDB0+2}
:End
:ElseIf getKey(2) and (sub(GN,4+{N*3+GDB0},4+{N*3+GDB0+1})=0
:If T=1
:2→T
:Else
:3→T
:End
:If {N*3+GDB0+2}
:{N*3+GDB0}-1→{N*3+GDB0}
:sub(DS,0,0,2)
:Else
:1→{N*3+GDB0+2}
:End
:.Else
:.0→T
:End
:Return
:
:.Fonction de dessin
:Lbl FD
:ClrDraw
:ClrDraw<sup>r</sup>
:For(X,0,11)
:For(Y,0,7)
:sub(GN,X+{N*3+GDB0},Y+{N*3+GDB0+1})→W
:Pt-On(X*8,Y*8,W*8+E)
:End
:End
:Return
:
:Lbl GN
:r<sub>2</sub>*102+r<sub>1</sub>→r<sub>3</sub>
:{r<sub>3</sub>/2+D}→r<sub>4</sub>
:If r<sub>3</sub>^2
:r<sub>4</sub>^16
:Else
:r<sub>4</sub>/16
:End

PS : le "Pas de licence" est surtout pour dissuader quand quelqu'un me choure le programme sans savoir que il faut mettre les appvars en plus. :thumbsup:
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on January 22, 2011, 03:04:17 pm
Nice, and wow, 8 players? O.O Does it means the game will use CALCnet?

Cool, et wow, 8 joueurs? O.O Est-ce que ça veux dire que le jeu va utiliser CALCnet?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on January 22, 2011, 03:34:30 pm
I think I'll ad multi-player game with link port, but I don't know exactly how CALCnet work ???
Title: Re: [Axe parser] : projet worms
Post by: willrandship on January 22, 2011, 05:11:32 pm
CalcNet does not currently support axe, as far as I've heard. It definitely will eventually though, with axioms.

I take it it will use hotseat multiplayer? (share one or two calcs)
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on January 23, 2011, 03:01:13 am
Ah ok, mais comment va tu faire marcher le mode 8 joueurs avec un cable TI-TI qui supporte 2 joueurs? ???
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on January 23, 2011, 07:23:23 am
Trois possibilitées :
- Sois on ne pourra jouer qu'à 2 joueurs.
- Sois ce sera quelque chose comme 4 joueur par calculatrice.
- Sois il y aura une calculatrice "host" qui organisera la partie (comme sur le jeu original).

Bref, du boulot en perspective. ;)
Title: Re: [Axe parser] : projet worms
Post by: mdr1 on January 23, 2011, 09:54:02 am
Je préfère la dernière possibilité. ;)
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on January 23, 2011, 10:41:51 am
Par contre est ce qu'on pourrait m'expliquer en français ce qu'est exactement calcNET, c'est sur internet ?
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on January 24, 2011, 03:26:36 am
Ah ok. calcNET est un protocol de réseau permettant à 2, 3 ou plus de calculatrices TI de se connecter ensemble avec peu de gadgets/hardwares additionels. gCn (Global CALCnet) ça permet les jeux TI en ligne. Il y a des images sur Cemetech http://cemetech.net/projects/item.php?id=33 mais c'est tout en anglais.
Title: Re: [Axe parser] : projet worms
Post by: mdr1 on April 01, 2011, 10:11:03 am
Je vois qu'il n'y a pas eu de nouvelles depuis longtemps.
Où en es-tu, kindermoumoute ?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on April 01, 2011, 02:27:28 pm
Je n'avance plus trop en ce moment, j'essayerai de m'y remettre pendant les vacances prochaines. :)
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on April 06, 2011, 08:52:50 pm
Je n'avance plus trop en ce moment, j'essayerai de m'y remettre pendant les vacances prochaines. :)
Étais-ce un poisson d'avril et qu'en fait tu a avancé beaucoup? ;D
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on April 07, 2011, 04:29:56 pm
Non, c'est vrai, j'ai les TPE en ce moment de 1ère SSI (en gros un robot à programmer), et puis ya minecraft aussi (ce jeu est horriblement addictif :p ), donc je me remet à la programmation Axe après tout ça :)
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on April 15, 2011, 05:32:49 pm
Ah ok, j'espère que tu ne quittera pas la prog TI à cause de Minecraft. :P (C'est arrivé à beaucoup de monde avec World of Warcraft dans le passé <_<)
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on April 15, 2011, 05:59:42 pm
Euh.. d'abord mionecraft et world of warcraft ce n'est pas très comparable. :)
Mais c'est surtout les TPE qui m'ont prit une bonne partie de mon temps dernièrement (lorsque j'en avait).
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on April 15, 2011, 06:16:30 pm
C'est vrai, mais des gens sont devenus accro à MC autant que d'autres l'ont fait avec WoW. :P
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on May 01, 2011, 04:36:49 pm
Ah oui tu as raison, c'est une addiction diabolique  :devil:
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on June 04, 2011, 10:22:17 am
Serait-il possible d'avoir une version béta ? Parce que moi, même avec un TI-ny worms non terminé je m'éclatais. J'avais même trouvé un bug qui me permettait de promener mon worm dans les données de la calculette (mais j'ai oublié), et je me faisait chi*r à empiler les worms, bref.
Tout ça pour dire qu'une béta serait bien. Et flemme de traduire donc...

Would it be possible to have a beta version, even unfinished (that's why it's called beta) ?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on June 04, 2011, 04:29:40 pm
Cela fait trop longtemps que je n'y ai pas touché. J'ai arrêté au système de physique réaliste que je n'arrivai pas à mettre en place. Peut-être qu'avec les idées claires je m'y remettrais..
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on June 05, 2011, 02:37:30 am
La "physique réaliste" concerne quoi ? Les tirs ?
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on June 05, 2011, 03:10:51 am
J'espère que ce projet va continuer. Ce serait dommage si ça s'arrêtait pour de bon. :(

As tu essayé de demander de l'aide dans la section anglo?
Title: Re: [Axe parser] : projet worms
Post by: deeph on June 05, 2011, 03:44:34 am
J'sais pas si ça peut te servir mais certains tuto non spécifiques aux TI sont intéressant, comme http://www.planet-casio.com/Fr/forums/topic5275-1-%5B-Tutorial-%5D-Tir-balistic,-jeu-de-worms,-de-tir.html
Title: Re: [Axe parser] : projet worms
Post by: noelthebest on June 05, 2011, 05:32:51 am
En TI-Basic on arrive à faire de très bons worms, donc en Axe...
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on June 05, 2011, 08:11:39 am
deeph, ton lien a l'air très intéressant !
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on June 05, 2011, 06:10:48 pm
J'ai jamais vu un clone de TinyWorms en BASIC, mais je suis sur que c'est possible en elevant la physique.
Title: Re: [Axe parser] : projet worms
Post by: noelthebest on June 06, 2011, 11:43:46 am
Yomansz a fait un jeu du type worms pour le TI-Concours, vous pouvez le télécharger sur le site internet. :)
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on June 15, 2011, 03:45:20 am
Cool, je vais aller voir quand j'aurai le temps :D
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on January 31, 2012, 04:16:15 pm
Plop,
Hayleia et moi même envisageons de reprendre le projet avec quelques caractéristiques pour le moins alléchantes :
Si vous voulez nous aider, il y a un paquet d'arme dans worms armageddon, donc on aimerais savoir lesquelles vous voudriez avoir en priorité dans votre inventaire, et si vous êtes motivés pourquoi pas nous faire la sprite qui va avec en noir et blanc :
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on January 31, 2012, 04:17:55 pm
Hmm ce serait nice en effet. :) Pour les sprites tu devrais aussi demander dans la section pixel art en cas ou les gens ne visiterait pas ce topic (les posts en français n'apparaissent pas dans le canal IRC anglais).
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on February 01, 2012, 04:32:26 pm
A l'aide des fameuses librairies ZEDD, j'ai réussi à faire une simulation de la ligne d'eau. Je n'ai pas cherché à optimiser pour l'instant, mais ça donnerait à peu près ça :
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on February 01, 2012, 11:49:08 pm
Nice XD, j'aime l'éffet.
Title: Re: [Axe parser] : projet worms
Post by: Juju on February 02, 2012, 12:08:02 am
Cool :D
Title: Re: [Axe parser] : projet worms
Post by: Eiyeron on February 12, 2012, 12:38:42 pm
Euh, suis-je  boulet si je demande toutes?

Sinon, la st grenade est un must-have. Essayé d'envoyer sur le port en même temps son alléluia mythique.
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on February 12, 2012, 04:55:51 pm
Euh, suis-je  boulet si je demande toutes?

Sinon, la st grenade est un must-have. Essayé d'envoyer sur le port en même temps son alléluia mythique.
Nan laisse tomber pour le son... on verra si on peut pas faire une animation spéciale pour la St Grenade. ;)
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 03, 2012, 06:45:50 am
Premiere version de l'editeur de niveaux, avec plusieurs curseurs :D
(En revanche, aucun moyen de sauvegarder son travail pour l'instant :()

Evidemment, kindermoumoute est autorise a optimiser mon pseudocode :P

Mode d'emploi:
-fleches bouger le curseur ou la map si F2 est appuye
-2nd tracer en noir
-Alpha tracer en blanc
-F1 faire bouger le curseur plus vite (mais moins precisement)
-F3 (garder appuye) choisir un autre curseur
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 04, 2012, 09:03:13 am
J'ai fais quelque optimisation très vite fais, c'est plutôt bien optimisé en général. ;)

Il y a juste un truc que je n'ai pas modifié parce que j'étais pas sûr, mais parmi les variables que tu rajoute :
Code: [Select]
:L1+704→°WIDTH
:L1+702→°LENGT
Celles ci garde toujours les même valeurs :
Code: [Select]
:256/8→WIDTH
:256→LENGT

Du coup autant faire les utiliser comme des constantes en début de code :
Code: [Select]
:256/8→°WIDTH
:256→°LENGT
Et ensuite les réutiliser de cette manière :
Code: [Select]
:°WIDTH*°LENGT→r1Elles seront juste remplacées lors de la compilation. Comme je ne sais pas si tu compte les modifier (avec des map 512*128 ou 1024*64), j'ai pas fais la modification. ;)
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 04, 2012, 12:11:09 pm
c'est plutôt bien optimisé en général. ;)
*.* Moi, je code optimisé !?! Lolwat ?

Elles seront juste remplacées lors de la compilation. Comme je ne sais pas si tu compte les modifier (avec des map 512*128 ou 1024*64), j'ai pas fais la modification. ;)
C'était exactement mon but, J'ai juste mis 256*256 pour le test :)


Sinon, j'ai juste trois problemes avec ton code.
-D'abord, tous les APPV sont bizarres, on dirait qu'il (ton code ou ton logiciel) a inventé un token "PV" et il ecrit APPV comme A,P,PV si tu vois ce que je veux dire.
-Ensuite, au moment ou tu fais 255→{APPV}→{APPV+2}→{APPV+257}→{APPV+97} etc, au moment ou Axe lit la deuxieme fleche HL a change et vaut APPV, il semblerait alors qu' au lieu de mettre 255 dans {APPV+2}, il mette APPV dans {APPV+2} puis APPV+2 dans {APPV+257}, etc, car il n'affiche pas ce qu'il faudrait sur l'ecran mais il l'affiche la ou il faut. Mais on s'en fiche car c'etait juste pour le test ;)
-Enfin, j'arrive plus a bouger la carte vers la gauche D:
Apparement cela vient de la ligne "If XMAP and getKey(2)". En remettant "If XMAP=/=0 and getKey(2)" tout fonctionne.


Autre chose qui n'a rien a voir avec tes modifications, il y a un conflit de touches: bouger la map en meme temps vers le haut et la droite ouvre le menu curseur -.-°
Appuyer sur ces F2, haut et bas en meme temps semble "appuyer" sur F3 aussi, d'apres le programme de zTrumpet.
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 05, 2012, 11:33:19 am
Plop,
Désolé de te demander ça, mais est ce que tu peux refaire les cercles avec cet axiom (http://ourl.ca/15343/289168) ?
Ce sera beaucoup plus léger et on pourra changer la taille du pinceau au delà des 8*8. :)
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 05, 2012, 12:23:04 pm
Plop,
Désolé de te demander ça, mais est ce que tu peux refaire les cercles avec cet axiom (http://ourl.ca/15343/289168) ?
Ce sera beaucoup plus léger et on pourra changer la taille du pinceau au delà des 8*8. :)
Ok, je vais tenter. Mais ce sera pas pour demain, j'ai colle de maths et d'anglais D:
En attendant, j'ai changé le mode de reglage de vitesse pour le curseur ;)
(note, plus "Speed" est grand, plus le curseur est lent, pas l'inverse)
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 06, 2012, 01:38:04 pm
Double post mais update.
Curseurs changes graces a l'axiome de dessin de cercles: Plein de tailles disponibles :D
En maintenant F3 appuye:
-gauche et droite pour changer le type du curseur
-haut et bas pour changer la taille

Probleme des curseurs carres qui ne clippent qu'en bas et a gauche, mais pas a droite ni en haut D:

(optimisation evidente: supprimer le programmes "CURSORS" ;))

edit: Speed a aussi ete change: maintenant, plus il est grand plus le curseur va vite.
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 06, 2012, 02:39:53 pm
Génial, par contre c'est bizarre que la routine de cercle qu'utilise l'axiom ne ressemble pas à un cercle mais plus à un carre lorsque l'échelle est petite... O_o
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 06, 2012, 02:46:24 pm
Génial, par contre c'est bizarre que la routine de cercle qu'utilise l'axiom ne ressemble pas à un cercle mais plus à un carre lorsque l'échelle est petite... O_o
C'est pas faux >.<

Re update
Les carres clippent.
(Attention a ne pas aller trop loin quand meme)
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on March 06, 2012, 03:18:05 pm
Question, est-ce que la taille des plateformes dans l'éditeur de niveaux sera dorénavant la taille réelle dans le jeu, ou si c'est tout simplement dézoomé? Et si c'est dézoomé, quelle est la taille maximale des maps?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 06, 2012, 03:33:40 pm
En fait on compte faire des bitmaps complètes soit 256*256 pixels, soit 512*128 pixels ou soit 1024*64 pixels. Donc l'éditeur représente à échelle réel la map, même si pour l'instant on ne peut pas sauvegarder, ça donnera un aperçu de la taille des maps.

Après on a peut-être pas dis beaucoup de choses sur l'éditeur : pourquoi l'éditeur maintenant ?
On commence par ça pour pouvoir tester toute sorte de map assez rapidement pour la suite du projet. De plus il y a certains défis techniques à réaliser avec les map, notamment la sauvegarde de l'écran dans celle ci. Il faut qu'on soit fixé rapidement sur la vitesse que cela met.
Ensuite on compte dans un future un peu lointain faire un générateur de map, intégré dans l'éditeur. Pour ceux qui jouent un peu aux worms, les générateurs de map font vraiment partie des trucs sympa du jeu. :)

Je m'y mettrai à fond à la fin de mon back-blanc (ou avant ? x.x ) mais je dois avouer qu'hayleia fait plutôt du très bon travail.  :thumbsup:
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on March 06, 2012, 03:37:45 pm
Ah ok, mais si vous utilisez de tells images, allez vous avoir de la compression (comme RLE)? Car sinon les maps vont être très gourmandes en mémoire. Une image de 256 par 256 c'est 8192 octets.
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 07, 2012, 07:28:11 am
C'est aussi à envisager... par contre il y a de grandes chances qu'on laisse la dernière MAP utilisée dans la RAM. En gros à chaque nouvelle partie on déplace la MAP choisi vers cet MAP temporaire (c'est à ce moment qu'il faut décompresser l'archive).

Seul l'éditeur de MAP pourra copier la MAP temporaire vers une appvars archivé (+ compression de l'image). Donc lorsqu'on édite une map on édite tout le temps la map temporaire (dans la RAM). De même lorsqu'on joue ce sera tout le temps la la map temporaire qui sera détruite. ;)

@Hayleia : je viens de penser à un truc pour une option "annuler action". En gros on sauve l'écran dans l'appvar à un seul moment, c'est quand on appuie sur une touche pour déplacer ou dessiner ou faire apparaître le menu (une option que je viens d'inventer :p). Dans un code :
Code: [Select]
If touches de déplacement ou autre
:If A
:copier écran dans l'appvar
:0=>A
:End
:.code si touches de déplacement ou autre
:Else
:1=>A
:End
Je vais tester un truc pour copier l'écran dans l'appvar. :w00t: (pas sûr que ça marche)
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 07, 2012, 11:01:14 am
@Hayleia : je viens de penser à un truc pour une option "annuler action". En gros on sauve l'écran dans l'appvar à un seul moment, c'est quand on appuie sur une touche pour déplacer ou dessiner ou faire apparaître le menu (une option que je viens d'inventer :p). Dans un code :
Code: [Select]
If touches de déplacement ou autre
:If A
:copier écran dans l'appvar
:0=>A
:End
:.code si touches de déplacement ou autre
:Else
:1=>A
:End
Je vais tester un truc pour copier l'écran dans l'appvar. :w00t: (pas sûr que ça marche)
C'est faisable: pour l'instant, l'écran n'est sauvé que si on bouge la map ;)
Pour l'instant j'ai

   If t'appuies sur les fleches
      If c'est la map que tu bouges
         sauver l'ecran dans la map
         changer coordonnées
         dessiner la map a l'ecran
      Else
         bouger le curseur
      End
   End

Par contre, j'ai pas compris le but de ta variable A ???
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 07, 2012, 11:19:53 am
Le but de la variable A est une manière comme une autre pour ne pas sauvegarder l'écran à chaque boucle, mais seulement quand on commence à presser les touches.

Après la méthode que je pensais était d'utiliser un bitmap trafiqué de L6 dans l'appvar via une astuce simple : en utilisant {L6-1} et {L6-2} pour y rentrer des coordonnées. Je n'ai pas trouvé exactement à quoi servaient ces deux octets, mais ils ne m'ont provoqué aucun bug à l'extinction du programme. Au pire on peut restaurer les valeurs qui étaient en début de programme, mais c'est pas le plus important (moi elles était à 0).

Après je n'ai pas tout à fait idée de la manière à utiliser car la commande bitmap est faite pour afficher sur un buffer de 768 octets, donc est ce que cela pourrait marcher ? (il faudrait poser la question à runer :p )

EDIT : Après discussion avec runer, je pense qu'on a trouvé une solution pour
- éditer l'appvar via les explosions du jeu, en fait il faudra faire nos propres automates cellulaire qui modifient directement l'appvar. Il en faudra donc pour les explosions et les flammes (en gros un simple cercle ne suffit pas :'( ). De cette manière on édite même en dehors de l'écran, donc on peut faire pleins de belles explosions. ;D
- pour éditer l'appvar via l'éditeur de map, le plus "simple" serait de copier l'écran vers l'appvars au bon endroit. De cette manière on peut faire "annuler action" mais l'éditeur empêchera d'éditer plus que l'écran. Le code que je pensais étais quelque chose comme Bitmap(0,0,L6,APPV,1), et ce en modifiant au fur et à mesure les 64 lignes de l'écran vers l'appvar. Un code prototype :
Code: [Select]
:getCalc("appvAPPV")=>APPV
:For(I,0,63)
:96*256+1=>{I*12-2+L6}r
:.Après comme on affiche l'appvar directement sur l'écran on verra pas les trucs modifiés
:Bitmap(0,0,I*12+L6,I+X*32+Y+APPV,1)
:End
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 07, 2012, 01:44:38 pm
???
Mais si l'ecran a une largeur divisible par 8 (ce qui est le cas), et si l'appvar a une largeur divisible par 8 aussi (ce qui est le cas aussi), pourquoi tu te casses la tete avec des Bitmaps au lieu de faire des Copy ? Par exemple

For(r1,0,63)
Copy(r1*12+L6,r1+YMAP*WIDTH+XMAP+APPV,12)
End

(D'ailleurs tes X et Y, c'est les XMAP et YMAP ?)
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 07, 2012, 01:49:48 pm
N'oublie pas que c'est du pixelmapping, donc au bit près.
T'as raison sur un point, on se casse la tête pour faire un truc non optimisé. Si tu regarde le smoothscrolling de runer, il y a exactement  la même routine (DrawR) qui fais ce que l'on cherche, mais dans l'autre sens... à exploiter. ;)


EDITtest :
Spoiler For "Le smoothscrolling pixelmapping":
Quote from: Axe
.ISCROLL Image scrolling test

Data(256,192)[|vIMG]->^^oIMG

DiagnosticOff
FnOff
ClrDraw
Bitmap(~80→X,~64→Y,^^oIMG)

While 1
 DispGraph
 If getKey(1)
  !If Y-1<~128
   Y--
   Vertical -
   63:DrawY()
  End
 End
 If getKey(2)
  If X
   +1→X
   Horizontal +
   .0:DrawC()
   DrawL()
  End
 End
 If getKey(3)
  !If X-1<~160
   X--
   Horizontal -
   .95:DrawC()
   DrawR()
  End
 End
 If getKey(4)
  If Y
   +1→Y
   Vertical +
   0:DrawY()
  End
 End
EndIf getKey(15)
Return

Lbl DrawY
 Copy(→r1-Y*32+^^oIMG+2,L1+2,32)
 Fill(r1*12+L6,12,|E0100→{L1}r)
 Bitmap(X,r1,L1)
Return

Lbl DrawR
 11+L6→r3
 |E01→r4
 95
 Goto Draw0
Lbl DrawL
 L6→r3
 |E80→r4
  and 0
 Lbl Draw0
 Select(-X,{^8+^^oMasks}→r2)
 *32/256-(Y*32)+^^oIMG+2
 For(64)
  not({→r1} and r2-1/256) and r4 or {r3}→{r3}+12→r3
  r1+32
 End
Return

[8040201008040201]→^^oMasks

Generated by the BBify'r (http://clrhome.org/resources/bbify/ (http://clrhome.org/resources/bbify/))
C'est DrawY en fait qu'il faut regarder !
Code: [Select]
:Lbl DrawY
:Copy(→r1-Y*32+°IMG+2,L1+2,32)
:Fill(r1*12+L6,12,ᴱ0100→{L1}r)
:Bitmap(X,r1,L1)
:Return
Il ne reste plus qu'à comprendre comment ça marche.
Title: Re: [Axe parser] : projet worms
Post by: excale on March 08, 2012, 01:09:26 pm
Joli :).

Je savais pas que tu continuais ce projet.
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 08, 2012, 01:35:47 pm
 :o Excale !
On te vois pas souvent sur omnimaga. :thumbsup:


Bon hayleia, pour récapituler le moteur smoothscrolling pixelmapping de runer, j'ai tout compris et j'ai commenté en français à outrance (quitte à ce que tu comprenne, autant y aller à fond). :hyper:
Donc à part le petit bilan sur les masques (mask en anglais), tu devrais déjà tout comprendre :
Quote from: Axe
.PIXELM Map scrolling test
"|vSAVE"→^^oSAVE
L5→^^oIMG
Return!If GetCalc(^^oSAVE)
→IMG
DiagnosticOff
FnOff
ClrDraw
.Affichage de la map
Bitmap(~80→X,~64→Y,IMG)
...
Petites explications :
Les coordonnées X et Y sont compris entre ~160 et 0 (les deux)
Car 160+96=256
Y-1 c'est une ligne en dessous, et X-1 une colonne à droite
Autre optimisation
-X sera donc positif (de même pour -Y)
...


.Boucle principale
While 1

DispGraph

If getKey(1)
.Si il n'y a pas le bout de la map en bas
!If Y-1<~160
Y--
.On décale en bas
Vertical -

.Pour afficher la ligne 63 manquante
63:DrawY()
End
End

If getKey(2)
.Si il n'y a pas le bout de la map à gauche
If X
+1→X
.On décale à gauche
Horizontal +

.Pour afficher la colonne de gauche (L comme left) manquante
DrawL()
End
End

If getKey(3)
.Si il n'y a pas le bout de la map à droite
!If X-1<~160
X--
.On décale à droite
Horizontal -

.Pour afficher la colonne de droite (R comme right) manquante
DrawR()
End
End

If getKey(4)
.Si il n'y a pas le bout de la map en haut
If Y
+1→Y
.On décale en haut
Vertical +

.Pour afficher la ligne 0 manquante
0:DrawY()
End
End

EndIf getKey(15)
Return

.Affiche les lignes
Lbl DrawY
.On copie les 256 pixels d'une ligne de l'appvar dans L1+2
Copy(→r1-Y*32+IMG+2,L1+2,32)

...
On efface la ligne à remplacer
parce que la commande vertical +/- ne le fait pas
autant faire une optimisation pour remplir les deux premier octets de L1
correspondant à la taille de la bitmap à afficher
...

Fill(r1*12+L6,12,|E0100→{L1}r)

.Et la c'est magique, la ligne s'affiche ;)
Bitmap(X,r1,L1)
Return

.Pour la colonne de droite
Lbl DrawR
.Dans cette octet on est en haut à droite de l'écran (buffer)
11+L6→r3
.Ici le masque de l'écran est 00000001, parce que c'est bit tout à droite que l'on veut modifier
|E01→r4
95
Goto Draw0

.Pour la colonne de gauche
Lbl DrawL
.Dans cette octet on est en haut à gauche de l'écran (buffer)
L6→r3
.Le masque de l'écran est 10000000, parce qu'on veut modifier le bit tout à gauche
|E80→r4
 and 0
 
 .Affiche les colonnes
Lbl Draw0
...
Rappel : HL-X vaut le nombre de colonnes
Optimisation assez tordue, nombre de colonnes^8 correspond au nombre de bits qui séparent le
dernier octet du bord de l'écran en valeur numérique
Donc quand ça vaut 0, r2 vaut le premier Masks10000000
Donc quand ça vaut 1, r2 vaut le deuxième Masks01000000
Donc quand ça vaut 2, r2 vaut le troisième Masks00100000
Donc quand ça vaut 3, r2 vaut le quatrième Masks00010000
Donc quand ça vaut 4, r2 vaut le cinquième Masks00001000
Donc quand ça vaut 5, r2 vaut le sixième Masks00000100
Donc quand ça vaut 6, r2 vaut le septième Masks00000010
Donc quand ça vaut 7, r2 vaut le huitième Masks00000001
...

Select(-X,{^8+^^oMasks}→r2)

.le nombre de colonnes/8 + le nombre de lignes (en octet) + le début de pointeur de la map dans HL
*32/256-(Y*32)+IMG+2

.Pour les 64 lignes
For(64)

...
Le plus chaud :
On masque octet trouvé dans l'appvar pour garder que le bit qu'il nous faut
Quand on soustrais par 1 et qu'on divise par 256 :
si aucun bit ne correspondait au mask, 0-1=65355 puis /256 ça fait 255
Si un bit correspondait au mask alors ça renvoie un nombre en 1 et 128 dans HL
HL-1/256 vaudra toujours 0 dans ce cas là (logique)
En inversé on créé un nouveau mask qui est soit 255 (un bit correspond au mask
soit 0 (aucun bit correspond au mask)
En fait cette manip sert juste à aligner le bit trouvé dans l'appvar, au bon
emplacement sur l'écran, donc là vient r4 le masque de l'écran
Ensuite un or logique permet d'ajouter le bit (ou non) dans le buffer (pointé par r3)
Et après il y a une dròle d'optimisation {r3}+12->r3 car ça fait r3+12->r3 en réalité o_o
...

not({→r1} and r2-1/256) and r4 or {r3}→{r3}+12→r3

.On passe la ligne suivante ^^
r1+32
End
Return


[8040201008040201]→^^oMasks

Generated by the BBify'r (http://clrhome.org/resources/bbify/ (http://clrhome.org/resources/bbify/))

Je me suis permis de modifier la taille de la bitmap en 256*256 pixels. La prochaine étape sera de faire 3 modes : 256*256, 512*128, 1024*64. Après cela je m'attaquerais à la sauvegarde dans l'appvar. :banghead:


PS : t'as pas intérêt de pondre un truc comme ça au TI-Concours. :mad:
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 09, 2012, 10:41:11 am
Update:
Une optimisation de 4 octets a été ajoutée
Les curseurs ne peuvent pas aller trop loin vers la gauche ni vers le haut (mais ils le peuvent vers le bas et la droite)
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 09, 2012, 06:34:07 pm
Bon, ça marche plutôt bien, j'ai optimisé quelques trucs et commenté le code comme promis. Un aperçu de ce que ça donne avec le moteur smoothscolling juste derrière.
Les ajouts que j'ai fait :
Bug trouvé :

edit : bug corrigé, tous marche à perfection. :love:
Pour l'instant ça nous fais 2608 octet éditeur de map et 870 pour le smoothscrolling, il va falloir y aller molo quand même sur cet éditeur.
Par exemple : peut être que le lors du changement de pinceau on a pas besoin de centrer le pinceau dans un carré ?
Je regarderais plus tard, mais il me semble que les fonctions d'affichage sont pas très optimisées. :-X
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 10, 2012, 07:57:50 am
(Flemme d'appuyer sur quote :P)

"Parcours de la pixelmap sans dépasser les limites de celle-ci."
Bonne idée, j'avais la flemme :P

"L'enregistrement dans l'appvar marchait très bien (bravo hayleia), mais maintenant c'est optimisé pour. "
Optimisé pour... pour quoi ?

"Ajout de l'option "annuler dernière action" en appuyant sur le touche "del"."
Bonne idée, on risque de s'en servir quand on fera vraiment des maps.

"peut être que le lors du changement de pinceau on a pas besoin de centrer le pinceau dans un carré"
Bof, pour la place que ça prend... Mais j'avoue que c'est inutile :P

"il me semble que les fonctions d'affichage sont pas très optimisées."
Celles que j'ai faites ou les fonctions de l'Axe ?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 10, 2012, 12:48:22 pm
"L'enregistrement dans l'appvar marchait très bien (bravo hayleia), mais maintenant c'est optimisé pour. "
Optimisé pour... pour quoi ?
En gros maintenant ça édite l'appvar MAPTEMP au lieu d'en créer une à chaque fois, de plus il y a quelques optimisations de réduction du poids se font à l'aide de cette appvar, ainsi que la fonction "annuler action". Donc la sauvegarde de l'appvar est en temps réel.

"il me semble que les fonctions d'affichage sont pas très optimisées."
Celles que j'ai faites ou les fonctions de l'Axe ?
Je pensais aux fonctions, mais finalement ce n'est pas si simple. Donc je préfère laisser comme ça. ;)

EDIT : pour l'instant je suis à 280 octets pour lister les maps. Voici le pastebin (http://pastebin.com/91TC6pBD) (commenté) et un screen + source.

EDIT 2 : à noter qu'il y a quand même une fail dans le screen, c'est qu'à la fin il cherche super loin donc il trouve une valeur plus loin que la VAT. Donc il faut rajouter une 3ème condition... :banghead:
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 13, 2012, 01:23:46 pm
Après avoir testé pas mal l'éditeur de dessin, je me suis rendu compte qu'il n'éditais pas la map à cause de la barre d'option en bas (je vais donc régler ça), et je me suis amusé à faire une map en cours (plus ou moins réussi) en même pas 15 minutes j'ai fais ça. C'est très efficace.  :)

Après je suis en train de penser au fonctionnement du jeu principale, ça pourrait prendre cette forme :
Code: [Select]
:Lbl Initialisation
:.Chargement de la map dans l'appvar (sauf si on garde celle déjà présente dans l'appvar)
:.Apparition des worms aléatoire sur le terrain (partie blanche de la map) + gravité (voir moteur physique)
:
:Lbl déplacement
:.caméra centré sur un worm
:.gestion des sauts à l'aide du moteur physique (seulement lors d'un saut)
:.Visé avant de tirer (on pourra utiliser des cos et sin préalablement enregistrés dans une liste)
:
:Lbl phase de tire
:.Explosions, flammes
:.Bref, tout ce qui risque de lagger :)
:
:Lbl caméra
:.S'occupe du déplacement de la map
:
:Lbl Moteur physique
:.Caméra centré sur l'action
:.Gravité + chute
:.frottements
:.Gestion des dégâts (sauf à l'initialisation)
:

C'est assez approximatif, mais c'est un début. Je serait intéressé d'avoir tes conseils là dessus (même si tu as le TI-Concours). ;D

Ou sinon, j'ai eu la remarque que la map était un peu trop grande en hauteur... ::)
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on March 13, 2012, 04:23:12 pm
Après avoir testé pas mal l'éditeur de dessin, je me suis rendu compte qu'il n'éditais pas la map à cause de la barre d'option en bas (je vais donc régler ça).
???

Sinon, pour la map, je suis assez d'accord pour dire qu'on pourra faire plein de tests dessus dans la mesure ou elle est bien variee.

Quant au code, qu'est-ce qui est routine, et qu'est-ce qui est boucle ? ???
Sinon, pour l'organisation, le "code" parait correct :)
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 13, 2012, 05:20:50 pm
J'avoue que ce n'est pas très clair, mais c'est un brouillon pour la suite : je compte d'abords faire le moteur de déplacement des worms et le système de visé qui ne nécessite pas de gravité. Après viendra le moteur avec les sauts et les chutes, puis le reste coulera plus "facilement" une fois qu'on aura une bonne organisation. ;D

Ou sinon, voici l'éditeur de dessin avec le bug des 7 dernières lignes corrigé. :angel:
Title: Re: [Axe parser] : projet worms
Post by: mdr1 on March 19, 2012, 11:19:10 am
Cool que le projet se poursuive !
Il y a-t-il une version bêta dans laquelle il y ait tout ?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on March 19, 2012, 01:23:03 pm
Nope, étant donné qu'on a pas de jeu fonctionnel pour l'instant. Mais promis on avancera le projet. :) (après le TI-Concours :P)
Title: Re: [Axe parser] : projet worms
Post by: Eiyeron on August 01, 2012, 08:53:40 am
/me pokes Kindermoumoute
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on August 01, 2012, 01:55:54 pm
* kindermoumoute runs
Title: Re: [Axe parser] : projet worms
Post by: Matrefeytontias on December 08, 2012, 09:34:21 am
Hyper-mega-über-necro-post-de-la-mort-of-the-death
/me runs

Bon sérieusement, je suppose que le projet est dead ?
Title: Re: [Axe parser] : projet worms
Post by: kindermoumoute on December 09, 2012, 06:46:22 pm
* kindermoumoute runs.



PS : si t'es très motivé, les sources sont toujours là, le mieux serait de relancer hayleia aussi.
Title: Re: [Axe parser] : projet worms
Post by: DJ Omnimaga on December 09, 2012, 06:58:38 pm
Je crois que Hayleia est occupé avec Tinycraft en ce moment par contre :P
Title: Re: [Axe parser] : projet worms
Post by: Hayleia on December 10, 2012, 01:24:38 am
(Lol, ça me fait toujours bizarre de tomber sur un topic en français soudain :P)

Et moi en ce moment, c'est surtout la prépa qui m'occupe, plus que mes projets :P
Mais effectivement, j'ai aussi TinyCraft (occupe bien mes vacances), Robbox (occupe mon temps de midi à l'école), KoFiX (basse priorité) et mon entrée pour la compétition EspaceTI (ne sera plus un problème après le 20), donc ça m'arrangerait si Matref prenait ma place :P
Title: Re: [Axe parser] : projet worms
Post by: Matrefeytontias on December 10, 2012, 08:03:08 am
Euuuh ouais mais nan :P moi j'ai WiredWorks, Super Crate Box (not dead yet o/) et OmniRPG ousque je fais toujours des trucs. C'est pas le moment de se lancer dans un gros projet en plus ;D
Title: Re: [Axe parser] : projet worms
Post by: neuronix on September 10, 2016, 04:48:42 am
J'imagine que le projet est mort?
Title: Re: [Axe parser] : projet worms
Post by: TIfanx1999 on September 10, 2016, 05:28:43 pm
Yes, I think it's safe to say that this project is dead. No post since 2012.
Title: Re: [Axe parser] : projet worms
Post by: neuronix on September 16, 2016, 07:26:54 am
Ok, thanks.
What a shame! This was a good project :)