Scrolling latéral style "montagnes" (astuce)
25 posts
• Page 2 of 3 • 1, 2, 3
Re: Scrolling latéral style "montagnes" (astuce)
La map est d'abord générée aléatoirement dans les listes L1, L2 et L3 puis "lue".
Après quelques tests, ta version est difficilement optimisable ! Les lists sont toujours plus rapides que les Strings, les aléat et tous les autres types de variable.
Ce qu'on peut noter :
- plus l'espace de jeu est petit, plus ça va vite : sur Ti-83PCE, ça va 2x moins vite que sur 83+
- on pourrait recommencer à lire le premier élément de list une fois arrivé à l'élément 998 (999 étant impossible à cause d'un L3(F+1))
- ça ne marche bien sur Ti-82 stats(.fr), j'ai jamais su qu'on pouvait faire ça avant...
Voilou, je vais essayer de voir si y'a pas quand même un moyen de faire aller plus vite, sans utiliser les langages alternatifs bien sûr.
Après quelques tests, ta version est difficilement optimisable ! Les lists sont toujours plus rapides que les Strings, les aléat et tous les autres types de variable.
Ce qu'on peut noter :
- plus l'espace de jeu est petit, plus ça va vite : sur Ti-83PCE, ça va 2x moins vite que sur 83+
- on pourrait recommencer à lire le premier élément de list une fois arrivé à l'élément 998 (999 étant impossible à cause d'un L3(F+1))
- ça ne marche bien sur Ti-82 stats(.fr), j'ai jamais su qu'on pouvait faire ça avant...
Voilou, je vais essayer de voir si y'a pas quand même un moyen de faire aller plus vite, sans utiliser les langages alternatifs bien sûr.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon

Unis par la flèche sacrée de cupidon


-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1182
- Images: 4
- Joined: 08 Dec 2014, 17:38
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ensimag
- GitHub: MathisLav
-
EL PHARAProgrammeur
Niveau 10: GR (Guide de Référence)- Posts: 84
- Joined: 06 Feb 2016, 14:23
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: À la FAQ + à 42
Re: Scrolling latéral style "montagnes" (astuce)
Optimisation , encore!
J'ai obtenu un scrolling un peu plus fluide/rapide en remplaçant l'utilisation exclusive d'élements de liste dans les LINE(
par des variables autant que possible (traitement plus rapide)
Désolé pour l'absence d'explications, je verrai ça ultérieurement, il se fait tard ...

NB: capture video provenant d'un émulateur (meilleur rendu sur calculatrice , et le vaisseau ne clignote pas)
PROGRAM:SCROLL2

J'ai obtenu un scrolling un peu plus fluide/rapide en remplaçant l'utilisation exclusive d'élements de liste dans les LINE(
par des variables autant que possible (traitement plus rapide)
Désolé pour l'absence d'explications, je verrai ça ultérieurement, il se fait tard ...


NB: capture video provenant d'un émulateur (meilleur rendu sur calculatrice , et le vaisseau ne clignote pas)
PROGRAM:SCROLL2
- Code: Select all
CoordOff
GridOff
AxesOff
LabelOff
ExprOff
0→Xmin
0→Ymin
.5→DeltaX
.5→DeltaY
100→dim(L1
Ans→dim(L2
Ans→dim(L3
48→L1(1:Ans→A:Ans→E:Ans→I:Ans→M
DelVar BDelVar FDelVar JDelVar N
randInt(4,15→Y
48+Y→L2(1
Ans→C:Ans→G:Ans→K:Ans→O
Y→L3(1
Ans→D:Ans→H:Ans→L:Ans→P
1→Q:1→R:1→S:1→T
DelVar V
For(U,2,100
Repeat V and 0<Y+V and 29>Y+V
randInt(~15,15→V
End
32+16U→L1(U
Ans+abs(V→L2(U
Y+V→L3(U
Ans→Y
End
ClrDraw
1→W
1→θ
10→X:10→Y
Repeat W>96
For(θ,θ,θ+15
Line(A-θ,B,C-θ,D,Q
Line(E-θ,F,G-θ,H,R
Line(I-θ,J,K-θ,L,S
Line(M-θ,N,O-θ,P,T
getKey→Z
Line(X,Y,X+2,Y,0
X+(Z=26)-(Z=24→X
Y+(Z=25)-(Z=34→Y
Line(X,Y,X+2,Y
End
W+1→W
L1(W→A
P→B
L2(W→C
L3(W→D
B<D→Q
For(θ,θ,θ+15
Line(A-θ,B,C-θ,D,Q
Line(E-θ,F,G-θ,H,R
Line(I-θ,J,K-θ,L,S
Line(M-θ,N,O-θ,P,T
getKey→Z
Line(X,Y,X+2,Y,0
X+(Z=26)-(Z=24→X
Y+(Z=25)-(Z=34→Y
Line(X,Y,X+2,Y
End
W+1→W
L1(W→E
D→F
L2(W→G
L3(W→H
F<H→R
For(θ,θ,θ+15
Line(A-θ,B,C-θ,D,Q
Line(E-θ,F,G-θ,H,R
Line(I-θ,J,K-θ,L,S
Line(M-θ,N,O-θ,P,T
getKey→Z
Line(X,Y,X+2,Y,0
X+(Z=26)-(Z=24→X
Y+(Z=25)-(Z=34→Y
Line(X,Y,X+2,Y
End
W+1→W
L1(W→I
H→J
L2(W→K
L3(W→L
J<L→S
For(θ,θ,θ+15
Line(A-θ,B,C-θ,D,Q
Line(E-θ,F,G-θ,H,R
Line(I-θ,J,K-θ,L,S
Line(M-θ,N,O-θ,P,T
getKey→Z
Line(X,Y,X+2,Y,0
X+(Z=26)-(Z=24→X
Y+(Z=25)-(Z=34→Y
Line(X,Y,X+2,Y
End
W+1→W
L1(W→M
L→N
L2(W→O
L3(W→P
N<P→T
End
Last edited by grosged on 12 Feb 2016, 14:49, edited 1 time in total.
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 773
- Images: 92
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Scrolling latéral style "montagnes" (astuce)
Super ! Mais comme je le disais dans le chat, les sous-programmes usent pas mal de vitesse, pour un gain de place, certes, mais une perte notable de vitesse.
Donc, je te conseille de faire un copier/coller du sous-programme avec
tu cherches ton programme et tu appuies deux fois sur

Sinon, je pense que tu as mis un mauvais lien, en téléchargeant le programme principal je tombe sur l'ancienne version.
Donc, je te conseille de faire un copier/coller du sous-programme avec
![[2nde/2nd] :f21:](./images/smilies/z80/21.png)
![[sto>] :f91:](./images/smilies/z80/91.png)
![[prgm] :f43:](./images/smilies/z80/43.png)
![[<-] :f24:](./images/smilies/z80/24.png)
![[entrer/enter] :f105:](./images/smilies/z80/105.png)

Sinon, je pense que tu as mis un mauvais lien, en téléchargeant le programme principal je tombe sur l'ancienne version.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon

Unis par la flèche sacrée de cupidon


-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1182
- Images: 4
- Joined: 08 Dec 2014, 17:38
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ensimag
- GitHub: MathisLav
Re: Scrolling latéral style "montagnes" (astuce)
Bravo pour cette amélioration. Tu voudrais pas faire ta propre fonction Horizontal en Axe



-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 3446
- Images: 75
- Joined: 04 Jul 2014, 14:40
- Location: Clermont-Ferrand 63
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: ENS Rennes
- GitHub: Ti64CLi
Re: Scrolling latéral style "montagnes" (astuce)
Merci, neuronix 
En Axe? Je ne connais pas, désolé.
Voici la version 3 , appelée scroll3
Archive : https://tiplanet.org/modules/archives/d ... ?id=432351

En Axe? Je ne connais pas, désolé.
Voici la version 3 , appelée scroll3
- Code: Select all
CoordOff
GridOff
AxesOff
LabelOff
ExprOff
0→Xmin
0→Ymin
.5→ΔX
.5→ΔY
100→dim(L2
Ans→dim(L3
48→A:Ans→E:Ans→I:Ans→M
DelVar BDelVar FDelVar JDelVar N
randInt(4,15→Y
48+Y→L2(1
Ans→C:Ans→G:Ans→K:Ans→O
Y→L3(1
Ans→D:Ans→H:Ans→L:Ans→P
1→Q:1→R:1→S:1→T
DelVar V
For(U,2,100
Repeat V and 0<Y+V and 29>Y+V
randInt(-15,15→V
End
32+16U+abs(V→L2(U
Y+V→L3(U
Ans→Y
End
ClrDraw
1→W
1→θ
10→X:10→Y
Repeat W>96
For(θ,θ,θ+15
Line(A-θ,B,C-θ,D,Q
Line(E-θ,F,G-θ,H,R
Line(I-θ,J,K-θ,L,S
Line(M-θ,N,O-θ,P,T
getKey→Z
Line(X,Y,X+2,Y,0
X+(Z=26)-(Z=24→X
Y+(Z=25)-(Z=34→Y
Line(X,Y,X+2,Y
End
W+1→W
θ+47→A
P→B
L2(W→C
L3(W→D
B<D→Q
For(θ,θ,θ+15
Line(A-θ,B,C-θ,D,Q
Line(E-θ,F,G-θ,H,R
Line(I-θ,J,K-θ,L,S
Line(M-θ,N,O-θ,P,T
getKey→Z
Line(X,Y,X+2,Y,0
X+(Z=26)-(Z=24→X
Y+(Z=25)-(Z=34→Y
Line(X,Y,X+2,Y
End
W+1→W
θ+47→E
D→F
L2(W→G
L3(W→H
F<H→R
For(θ,θ,θ+15
Line(A-θ,B,C-θ,D,Q
Line(E-θ,F,G-θ,H,R
Line(I-θ,J,K-θ,L,S
Line(M-θ,N,O-θ,P,T
getKey→Z
Line(X,Y,X+2,Y,0
X+(Z=26)-(Z=24→X
Y+(Z=25)-(Z=34→Y
Line(X,Y,X+2,Y
End
W+1→W
θ+47→I
H→J
L2(W→K
L3(W→L
J<L→S
For(θ,θ,θ+15
Line(A-θ,B,C-θ,D,Q
Line(E-θ,F,G-θ,H,R
Line(I-θ,J,K-θ,L,S
Line(M-θ,N,O-θ,P,T
getKey→Z
Line(X,Y,X+2,Y,0
X+(Z=26)-(Z=24→X
Y+(Z=25)-(Z=34→Y
Line(X,Y,X+2,Y
End
W+1→W
θ+47→M
L→N
L2(W→O
L3(W→P
N<P→T
End
Archive : https://tiplanet.org/modules/archives/d ... ?id=432351
Last edited by grosged on 12 Feb 2016, 16:18, edited 1 time in total.
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 773
- Images: 92
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Scrolling latéral style "montagnes" (astuce)
Bien optimisé là !
Prochaine étape, ce n'est pas le vaisseau qui bouge mais le décor
Prochaine étape, ce n'est pas le vaisseau qui bouge mais le décor

Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon

Unis par la flèche sacrée de cupidon


-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1182
- Images: 4
- Joined: 08 Dec 2014, 17:38
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ensimag
- GitHub: MathisLav
Re: Scrolling latéral style "montagnes" (astuce)
Le programme avance...doucement mais surement 
J'en suis à la version 4, je l'ai baptisé Scrollin' Mountains (ouais je sais , je ne me suis pas trop cassé la tête, là )
J'ai inclu une gestion des mouvements du vaisseau à la Flappy Bird.
J'ai affiché le nom du jeu eu haut de l'écran (méthode de flemmard pour constituer une barrière!)
Et j'ai trouvé une astuce pour avoir un clavier plus réactif (c-'est-à-dire sans "à-coups" ) :
Explication au moyen d'un tout petit programme:
Tant qu'on n'appuie sur rien, getKey nous renvoie la valeur 0
Sauf exceptions, si l'on presse une touche et laisse appuyé, une valeur apparaît brièvement (donc aucune répétition)
Les exceptions sont les 4 touches fléchées et la touche suppr : elles donneront furtivement une valeur , puis, au bout d'une seconde environ, la répétition s'effectuera.
Maintenant, laissons appuyé l'une de ces 5 touches (par exemple suppr), puis , de temps en temps, appuyons sur une autre touche (par exemple : entrer )
Nous obtenons enfin un clavier sans aucun délai avant répétition , vraiment réactif !!!
C'est ainsi que le vaisseau sera dirigé dans Scrollin' Mountains : il réagira dès que getKey sera nul !
Il faudra donc laissé suppr (par exemple) appuyé dès le lancement du programme (alors qu'il calcule les collines)

Voici en détail le programme SCROLL4 : ( archives_voir.php?id=433543 )
Suivi du programme SOUSPROG :
Epharius, j'ai laissé tomber le copier/coller de SOUSPROG (c'était trop galère, à chaque modification)
De toute façon, le gain apporté était très faible (une fois tous les 16 décalages de colline)
Voilà, c'est pas loin de la version finale, je pense!

J'en suis à la version 4, je l'ai baptisé Scrollin' Mountains (ouais je sais , je ne me suis pas trop cassé la tête, là )
J'ai inclu une gestion des mouvements du vaisseau à la Flappy Bird.
J'ai affiché le nom du jeu eu haut de l'écran (méthode de flemmard pour constituer une barrière!)
Et j'ai trouvé une astuce pour avoir un clavier plus réactif (c-'est-à-dire sans "à-coups" ) :
Explication au moyen d'un tout petit programme:
- Code: Select all
While 1
Disp getKey
End
Tant qu'on n'appuie sur rien, getKey nous renvoie la valeur 0
Sauf exceptions, si l'on presse une touche et laisse appuyé, une valeur apparaît brièvement (donc aucune répétition)
Les exceptions sont les 4 touches fléchées et la touche suppr : elles donneront furtivement une valeur , puis, au bout d'une seconde environ, la répétition s'effectuera.
Maintenant, laissons appuyé l'une de ces 5 touches (par exemple suppr), puis , de temps en temps, appuyons sur une autre touche (par exemple : entrer )
Nous obtenons enfin un clavier sans aucun délai avant répétition , vraiment réactif !!!
C'est ainsi que le vaisseau sera dirigé dans Scrollin' Mountains : il réagira dès que getKey sera nul !
Il faudra donc laissé suppr (par exemple) appuyé dès le lancement du programme (alors qu'il calcule les collines)

Voici en détail le programme SCROLL4 : ( archives_voir.php?id=433543 )
- Code: Select all
CoordOff
GridOff
AxesOff
LabelOff
ExprOff
0→Xmin:0→Ymin
.5→ΔX:.5→ΔY
ClrDraw
Text(0,5,"* SCROLLIN' MOUNTAINS *
48→A:Ans→E:Ans→I:Ans→M
DelVar BDelVar FDelVar JDelVar N
randInt(2,15→Y
48+Y→C:Ans→G:Ans→K:Ans→O
Ans→L2(1
Y→L3(1
Ans→D:Ans→H:Ans→L:Ans→P
1→Q:1→R:1→S:1→T
100→dim(L2
Ans→dim(L3
For(U,2,Ans
Repeat V and -V<Y and Y+V<23
randInt(-15,15→V
End
32+16U+abs(V→L2(U
Y+V→L3(U
Ans→Y
End
1→W
1→θ
25→U
Repeat W>96
prgmSOUSPROG
θ+47→A:P→B
L2(W→C:L3(W→D
B<D→Q
prgmSOUSPROG
θ+47→E:D→F
L2(W→G:L3(W→H
F<H→R
prgmSOUSPROG
θ+47→I:H→J
L2(W→K:L3(W→L
J<L→S
prgmSOUSPROG
θ+47→M:L→N
L2(W→O:L3(W→P
N<P→T
End
Suivi du programme SOUSPROG :
- Code: Select all
Y
For(θ,θ,θ+15
Line(A-θ,B,C-θ,D,Q
Line(E-θ,F,G-θ,H,R
Line(I-θ,J,K-θ,L,S
Line(M-θ,N,O-θ,P,T
If pxl-Test(64-2Ans,48:Goto 9
Pt-Off(24,Ans,2
Ans-1+2not(getKey
Pt-On(24,Ans,2
End
Ans→Y:W+1→W
Return
Lbl 9
For(Y,0,13
Pt-Off(24.5-rand,Ans+.5-rand,randInt(2,3
Pt-On(24.5-rand,Ans+.5-rand,randInt(2,3
End
Stop
Epharius, j'ai laissé tomber le copier/coller de SOUSPROG (c'était trop galère, à chaque modification)
De toute façon, le gain apporté était très faible (une fois tous les 16 décalages de colline)
Voilà, c'est pas loin de la version finale, je pense!

-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 773
- Images: 92
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile

Re: Scrolling latéral style "montagnes" (astuce)
Excellent. La gestion des collisions est implanté dans le jeu, je présume? Une petite suggestion par contre: Éviter d'utiliser Goto à l'intérieur d'une boucle For, While, Repeat ou entre un Then ou un Else et un End, car le programme ralentit et ça bouffe une douzaine d'octets de RAM à chaque Goto utilisé d'une telle manière, donc si le jeu est relancé à maintes reprises sans quitter le programme, il y aura éventuellement un ERR:MEMORY et un ralentissement. 

-
Dream of OmniPremium
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 730
- Images: 51
- Joined: 21 Feb 2012, 12:04
- Location: Quebec, Canada
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 11eme annee scolaire termine
- YouTube: dreamofomni
- Facebook: dreamofomni.page
Re: Scrolling latéral style "montagnes" (astuce)
Ah mais oui ! Je n'avais pas pensé à ce que pourrait occasionner ce Goto à long terme!
(d'ailleurs, cette gaffe m'arrive souvent) Je vais y remédier
Oui , la gestion des collisions est bien implantée : c'est juste le test d'un seul et unique point (histoire de faire light)
(d'ailleurs, cette gaffe m'arrive souvent) Je vais y remédier

Oui , la gestion des collisions est bien implantée : c'est juste le test d'un seul et unique point (histoire de faire light)
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 773
- Images: 92
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
25 posts
• Page 2 of 3 • 1, 2, 3
Who is online
Users browsing this forum: ClaudeBot [spider] and 8 guests