Page 1 of 2

[Axe] Stick Hero sur ta TI !

Unread postPosted: 04 Feb 2015, 18:42
by Clément.7
Salutations !

Parallèlement à Clash Of TI, j'ai consacré une heure de ma vie :o à développer le jeu Stick Hero pour TI-z80 en Axe !

Et je l'ai fini : lancez-le avec Asm(prgmSTICKER) puis maintenez :f21: pour allonger le stick. Relâchez pour qu'il s'abaisse.
Le but du jeu est que votre personnage descende de sa tige sur la plateforme d'arrivée.

Appuyez sur :f45: pour quitter le jeu à tout moment.

STICKER : Programme compilé à lancer avec la commande Asm(
STICKSRC : La source en Axe

Donnez-moi votre avis !

Téléchargement : Stick Hero

Re: [Axe] StickerMan sur ta TI !

Unread postPosted: 04 Feb 2015, 18:54
by Plokki
Je teste vite fait et je te dit

Mouais, chui pas convaincu. Déjà que le jeu est pas bien compliqué à la base, tu aurais au moins pu mettre les trucs à ramasser et le retournement du gus sur le bâton !
Et le bâton, parlons-en ! Je rêve ou il tombe pas vraiment ? il ferait pas un vieux déplacement en diagonale par hasard ?

Si tu veux lui faire faire une belle rotation fait comme ça:
A c'est ton angle
R la longueur du bâton
X1 et Y1 la position du bâton au sol
X2 et Y2 la position du bâton en l'air

for(A,1,64)
R*cos(64-A)>X2
R*sin(64-A)>Y2
(tu n'oublies pas d'ajouter la position relative du bâton à X2 et Y2)
line(X1,Y1, X2,Y2)
end

et voilà :p vive la trigo

Re: [Axe] StickerMan sur ta TI !

Unread postPosted: 04 Feb 2015, 18:55
by Clément.7
Il ne faut pas s'attendre à grand-chose non plus ce n'est guère plus qu'un simple petit jeu !

Re: [Axe] Stick Hero sur ta TI !

Unread postPosted: 04 Feb 2015, 19:21
by Plokki
heu sinon quand le bâton est trop grand il disparait, c'est du coup assez déroutant quand on l'allonge je te conseille donc d'utiliser rect( mais seulement pour la phase "allongement" (ouais je sais ça fait bizarre de dire ça)

Maintenant que je suis passé pro en axe :troll: je me permet de regarder ton code source
et il y a des trucs marrants !
Code: Select all
If X≥O and (X≤(O+L))

au début j'ai cru que le O était un zéro mais bref...
Pourquoi ne pas écrire
Code: Select all
if X-O≤L


et comme dirait hayleia (re :troll:): bien mieux que le if; le !if :

Code: Select all
If S=0
1→W
End

remplacé par
Code: Select all
S??1→W

Re: [Axe] Stick Hero sur ta TI !

Unread postPosted: 04 Feb 2015, 20:52
by Clément.7
Pour information le jeu n'est pas totalement terminé (j'ai oublié de le préciser dans mon post), je vais rajouter l'"anti-bug" du bâton qui s'allonge, une dizaine de persos débloquables avec les cerises (moi très bien parler ton langue) ainsi que le petit rectangle au milieu de la plateforme d'arrivée qui permets d'avoir un +1 si le bâton tombe pile poil dessus. (Demain j'ai 2 heures de maths alors je vais avoir du temps pour améliorer tout ça :troll:)

Sinon merci Plokki pour tes conseils c'est vrai que je suis un peu nul en Axe question optimisation, j'ai tellement peur de faire un prog. qui fonctionne pas à cause d'une optimisation mal faite...

Re: [Axe] Stick Hero sur ta TI !

Unread postPosted: 04 Feb 2015, 20:59
by Plokki
lol moi je suis en stage

oublie pas de mettre ma petite formule pour faire tomber le bâton de manière réaliste ;)

Re: [Axe] Stick Hero sur ta TI !

Unread postPosted: 04 Feb 2015, 21:36
by matref
@Plokki : ah ça veut faire son malin :P
Code: Select all
S??+1→W

Boum, deux octets de moins :troll:

Okay sérieusement, j'ai pas regardé le code mais comme a dit Plokki, y'a moyen de faire mieux niveau gameplay ... y'a presque rien dans le jeu original, autant que ce "presque rien" soit super méga bien fait :P

Re: [Axe] Stick Hero sur ta TI !

Unread postPosted: 05 Feb 2015, 12:12
by Clément.7
C'est pour ça que j'ai passé 2 heures de ma vie :o à le développer (je suis en train de l'améliorer)

Donc quand j'aurais fini, il y aura en plus :

- Meilleur Score
- Cerises (pour acheter une dizaine de nouveaux persos)

Et j'ai déjà fait :

- Gagner +1 si la barre tombe au milieu de la plateforme d'arrivée (sur le petit carré rouge)

Bugs que je vais corriger :

- La barre qui tombe de manière irréaliste (merci Plokki pour la formule)
- Le stick qui disparaît lorsqu'il est trop grand

J'essayerais peut-être d'en faire un jeu un poil plus complexe avec un scénario et en modifiant un peu le principe du jeu...

Re: [Axe] Stick Hero sur ta TI !

Unread postPosted: 05 Feb 2015, 18:00
by Plokki
Ouais ! un scénario ça peut être pas mal (même un truc à la noix mais qui fait office de fil rouge pour donner envie d'avancer sur les plateformes)
Je pense par exemple à plusieurs niveaux avec un nombre prédéfini de plateformes générées et il faut aller au bout pour récupérer un objet quelconque qui te permette de passer au niveau d'après. Tu pourrais peut être aussi rajouter des ennemis: des mobs un peu comme dans mario qui t'attendent sur la plateforme suivante en faisant des rondes, du coup il faut lâcher la barre au bon moment pour les écraser.

Matref> tout compte fait, je ne suis qu'un amateur :D

Clément.7 wrote:c'est vrai que je suis un peu nul en Axe question optimisation, j'ai tellement peur de faire un prog. qui fonctionne pas à cause d'une optimisation mal faite...


XD Je passe 70% du temps total de développement d'un jeu soit à tester et traquer les bugs soit à tenter de les corriger ! Autant dire que les optimisations soit tu les fais en même temps que tu codes (dur), soit tu les fais après coup une fois que ça marche (plus facile mais ça t'oblige a débugger 2 fois ton prog). Pour toi la phase de correction des problèmes est facile car ton code est encore tout petit et si jamais il reste des bugs bah demande de l'aide ;)

Autre conseil: Si plus tu testes ton jeu et que plus tu te dit qu'il est bien alors mieux c'est ! (heu je sais pas si c'est français)

Re: [Axe] Stick Hero sur ta TI !

Unread postPosted: 05 Feb 2015, 18:19
by Hayleia
Plokki wrote:Autant dire que les optimisations soit tu les fais en même temps que tu codes (dur), soit tu les fais après coup une fois que ça marche (plus facile mais ça t'oblige a débugger 2 fois ton prog).

C'est dur au début mais mieux vaut vraiment les faire pendant que tu codes pour que ça devienne automatique. Si tu te dis que tu le feras plus tard, non seulement tu le feras pas en vrai, mais en plus tu le feras pas non plus la prochaine fois ;)

Par exemple, j'ai écrit ce code en une passe (sans compter le débug, mais je veux dire que je l'ai pas écrit en mode naze puis optimisé après) maintenant que j'ai l'habitude :)
Code: Select all
.AA

[]→°OptLim
Data(63,2,1,1,1)

[]→°Level
"Easy"[00]
"Medium"[00]
"Hard"[00]

[]→°NoYes
"No"[00]
"Yes"[00]

Fix 5
ClrDraw(L1)

0→C
While 1
getKey→K
Select(,-1??(C-4?C+1)→C)
-4??(C??4,-1)→C
Copy(°TSBG,L6,768)
Copy(,L3,768)
3→Y~1→T
For(5)
  T++*36+°TSOpts
  For(9)
   Copy(,Y++*12→r1+L6+8,4)+176
   Copy(,r1+L3+8,4)-180
  End
  !If T-C
   {T+L1}→r1
   K-2Select(,??(r1??{T+°OptLim},-1)→r1)-1??(r1-{T+°OptLim}?r1+1)→r1
   r1→{T+L1}
   For(8)
    {Y++*12+L6+8→r2} and 252→{r2}
    Fill(+1,3, and 0)
    {r2+L3-L6} and 252 or 1→{r2+L3-L6}
    Fill(+1,3, or 255)
   End
   Fill(-2,3, xor 2)
   Text(72,Y-7)
   !If T
    Text r1>Dec
   Else!If -1
    Text stdDev(°Level,r1)
   Else
    Text stdDev(°NoYes,r1)
   End
  End
  {°Y}++
End
DispGraph^^r^^r
EndIf getKey(15)

[]→°TSBG
[FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF]
[FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF]

[]→°TSOpts
[1FFFFFFC00000000000000000000000000000000000000000000000000000000000000001FFFFFFC00000000000000000000000000000000000000000000000000000000000000001FFFFFFC00000000000000000000000000000000000000000000000000000000000000001FFFFFFC00000000000000000000000000000000000000000000000000000000000000001FFFFFFC0000000000000000000000000000000000000000000000000000000000000000]
[000000007FFFFFFF73FEFFFB6F6656496EAACD5B6EAADD6B736B5E4D7FFFFFFF00000000000000007FFFFFFF6FFFE7FF6F6B77FF6EAAB7FF6E7677FF633737FF7FFFFFFF00000000000000007FFFFFFF73FFFBFF6F6A73FF76AAABFF7AAAABFF6762B3FF7FFFFFFF00000000000000007FFFFFFF63EBFFFF6EB9FFFF676BFFFF6F6BFFFF62ADFFFF7FFFFFFF00000000000000007FFFFFFF73FFFFFF6F2B7FFF76AABFFF7AB67FFF67373FFF7FFFFFFF00000000]

Notes :
-vous pouvez évidemment remplacer TSBG par autre chose que du tout noir
-ceci était surtout censé être illisible pour embrouiller nikitouzz, pas forcément optimisé :troll: (même si un peu quand même)

edit Pour ceux qui se demandent ce que ce code fait :
AA.gif