Page 1 of 3

TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 28 Jan 2014, 14:26
by Wistaro
Bonjour à tous!

Je vous présente mon jeu, TI-Jump, un remake de Doodle-Jump :)

Spécificités:
>Gestion des 3 derniers scores.
>Menu animé
> Monstres, boosts, bonus
>Rapidité augmenté
>Possibilité de faire une pause dans le jeu
>Possibilité de traverser l'écran à droite, et à gauche.
>Petite taille du jeu
>Scrolling fluide

Changelogs:

beta v1.1: Version originale du programme

v1.1: Ajout du menu boutique, et du score.Correction du bugs des listes.

v1.2: Optimisation du programme, correction des bugs d'affichages du Doodle, rapidité augmentée.

v1.3: Ajout du cadre de la fenêtre. Suppression temporaire du menu de la boutique. Corrections des bugs quand le doodle touche les bords. Optimisation du programme (1591 octets contre 1800 de la version 1.1 avec en plus la correction des bugs) . Système de Game Over à l'extérieur de la boucle principale (rapidité augmentée)

v1.4: Grosse optimisation du programme. Il ne fait plus que 1368 octets! Ajout du système de reprise en haut de la map (avant quand on arrivait en haut de la map le Doodle tombait). Hauteur de la map améliorée. Au début, une plaque se situe tout en bas. Au fil du jeu, elle disparaît. Correction des bugs de game over. Rapidité augmentée!

v1.5 : Ajout de la fonction pause dans le jeu. Il est désormais possible de traverser l'écran des 2 cotés. Réalité du saut augmenté (quand le doodle arrive en haut). Correction des bugs d'affichages au démarrage. Amélioration de la gestion du score. Optimisation supplémentaire.

v1.6: Compatibilité avec toutes les Ti z80 (TI-76 à Ti-84+SE). Ajout de la gestion des scores (les trois derniers)

v2.0 (derniére): Ajout des monstres (M), des boosts (+). Optimisation du code. Menu amélioré. Nouvelle gestion des scores.

Fait entièrement par Wistaro


Version 2.0 !
Screen: Image

Code:
Code: Select all
:3→dim(L6
:DelVar DDelVar L39→dim(L3
:9→dim(L1:9→dim(L2
:ClrDraw
:AxesOff:ClrDraw
:0→Xmin:1→∆X
:0→Ymax:‾62→Ymin
:51→M:36→N:60→W
:1→T:Lbl 1
:Text(5,28,"‾ TI JUMP! ‾
:Text(38,62,"-
:Text(52,39,"-
:Text(27,43,"-
:For(A,24,71,5
: Pt-On(A,‾16
:End:Text(57,1,"Wistaro
:Text(57,81,"v2.0
:Repeat getKey
: For(A,1,W
: Text(46,38,"π
: End
: Text(46,38,"     "
: For(A,1,W
: Text(32,61,"π
: End
: Text(32,61,"     "
: For(A,1,W
: Text(21,41,"π
: End
: Text(21,41,"     "
:End:Lbl J
:51→M:36→N
:Menu("*-TI JumP-*","Jouer",9,"Scores",S,"Quitter",Q
:Lbl S:ClrDraw
:Text(1,25,"Meilleurs  scores
:Text(20,1,"1er:   ",L6(1
:Text(35,20,"2e:   ",L6(2
:Text(50,39,"3e:   ",L6(3
:Pause :Goto J
:Lbl 9:ClrDraw
:DelVar CDelVar SDelVar ΘDelVar C1→G
:Lbl 2
:If not(Q:8→D
:If D=2:Then:Text(1,1,int(S
: Text(M,N,"^
: DelVar C1→G:End
:If D≠2:Text(M,N,"    "
:DelVar EIf Θ=1:Then
: S+5→S
: M+8(D≠2→M
: For(A,1,9
: Text(L2(A),L1(A),"   "
: End
: For(A,9,2,‾1
: L1(A-1→L1(A
: L3(A-1→L3(A
: End
: randInt(14,74→L1(1
: L1(1)+(int(L1(1)/2)=L1(1)/2)→L1(1
: Q-(D=2→Q
: If D=2:Goto 2
: Text(M+7,N+1,"   "
: If S≥100:1.2→T
: If S≥200:1.4→T
: randInt(1,3→D
: randInt(1,8→U
: If D=2:1→L3(U
: If D=1:2→L3(U
: If L3(U:ClrDraw
: For(A,1,8,T
: round(A,0→A
: If not(L3(A:Text(L2(A),L1(A),"-
: If L3(A)=2:Text(L2(A),L1(A),"+
: If L3(A)=1:Text(L2(A),L1(A),"+
: End
: Goto Θ:End
:For(A,1,57,8
: E+1→E
: randInt(14,74→B
: B+(int(B/2)=(B/2→B
: B→L1(E:A→L2(E:Text(L2(E),B,"-
:End:Lbl Θ
:Lbl 3
:ClrHome
:Vertical 13
:Vertical 81
:StorePic 1
:Repeat K=45 or M=55
: RecallPic 1
: Text(1,1,int(S
: If M<52:Then
: If Pxl-Test(M+10,N+2) and not(Pxl-Test(M+10,N+1:Then
: Pause "FUSEE!
: 20→Q:2→D:Goto 2:End
: If Pxl-Test(M+10,N+3) and Pxl-Test(M+10,N+1:Goto 5
: End
: If M=9:Then
: 1→Θ:Goto 2:End
: getKey→K
: Text(M,N,"π
: If K=34:Then:Text(30,36,"Pause
: Pause :DelVar KClrDraw:RecallPic 1:End
: If K=24 and N≠14:Then
: Text(M,N+4,"    ":N-2→N:End
: If K=26 and N≠74:Then:Text(M,N-4,"      ":N+2→N:End
: If K=26 and N=74:Then:Text(M,N,"    ":14→N:End
: If K=24 and N=14:Then:Text(M,N,"      ":74→N:End
: If Pxl-Test(M+7,N+2:DelVar C1→G
: If G:Then:M-2→M:C+1→C:S+1→S:End
: If C=10:DelVar G
: If not(G:Then:C-1→C:M+2→M:S-.4→S:End
: If M<53:Text(M+4,N,"       "
: Text(1,1,"      ":End
:Lbl 5
:1→M:ClrDraw
:DelVar DText(7,30,"GAME OVER!
:Text(20,1,"Score: ",S
:If S>L6(3:S→L6(3
:If S>L6(2:Then:L6(2→L6(3:S→L6(2:End
:If S>L6(1:Then
: L6(1→L6(2:L6(2→L6(3
: S→L6(1:End
:If S≤L6(3
:Then
: Text(30,1,"A battre: ",L6(3:
:Else:Text(30,1,"Meileur score!
:End
:Pause :Goto J:End
:End:End
:Lbl Q:ClrDraw
:DelVar CDelVar GDelVar SDelVar L1DelVar L2


Je cherche des optimisations sur mon jeu et des améliorations, si vous en avez n'hésitez pas, c'est en partie pour cela que je poste le jeu ici :p


Merci à tous!

Re: TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 28 Jan 2014, 16:06
by critor
Joli. :)

Et je vois déjà à ta syntaxe que tu tentes d'optimiser à fond et de ne pas gâcher un seul octet de mémoire en usant de toutes les astuces connues du TI-Basic - bravo ! :bj:
Pas sûr que je trouve mieux ;)

Re: TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 28 Jan 2014, 16:09
by Adriweb
Si, en sauvegardant dans une chaîne les multiples occurrences des 3-4 espaces :D

Blague (enfin, ça reste vrai) à part, bien joué :)

Re: TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 28 Jan 2014, 17:14
by Wistaro
Merci ;-)

Une string vide? C'est possible, ou c'est une blague?

Re: TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 28 Jan 2014, 17:21
by critor
Elle n'es pas vide puisqu'elle contient des espaces.
Code: Select all
"     "->Str0

(tu peux omettre le deuxième délimiteur de chaîne)

Et ensuite, tu remplaces toutes tes chaînes de ce type par Str0.

Tu peux compter, ton programme gagnera quelques octets. ;)

Re: TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 28 Jan 2014, 17:26
by Wistaro
Et en lisibilité aussi ;-)

Merci je n'avais pas pensé à cela ^^

Par contre j'ai des soucis avec M qui ne s'affiche jamais (ou alors j'ai pas de chance). Je ne vois pas pourquoi :-(

Re: TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 28 Jan 2014, 17:35
by critor
Wistaro wrote:Par contre j'ai des soucis avec M qui ne s'affiche jamais (ou alors j'ai pas de chance). Je ne vois pas pourquoi :-(


Que veux-tu dire ?
Je ne vois aucune instruction permettant d'afficher M dans ton code.

Donc c'est normal... :P

Re: TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 28 Jan 2014, 18:05
by Wistaro
Évidemment, je viens de voir mon erreur:
Code: Select all
If L3(A)=1:Text(L2(A),L1(A),"+
If L3(A)=2:Text(L2(A),L1(A),"+


Devient:
Code: Select all
If L3(A)=1:Text(L2(A),L1(A),"+
If L3(A)=2:Text(L2(A),L1(A),"M


^^ Les monstres n'étaient pas encore parmis nous ;-)

Re: TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 28 Jan 2014, 22:02
by ```
`

Re: TI Jump 2.0 (Doodle Jump sur TI)

Unread postPosted: 29 Jan 2014, 10:05
by Wistaro
Oui, les minuscules ne fonctionnent pas sur TI-83 ;-)

Pour la pause, je trouve plus esthétique de l'afficher sur l'écran graphique, plutôt que de passer par l'écran home, et revenir sur le graph ensuite.