π
<-

Scrolling latéral style "montagnes" (astuce)

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby Epharius » 24 Jan 2016, 14:32

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.
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 :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby EL PHARA » 06 Feb 2016, 17:10

Woua ^^
User avatar
EL PHARAProgrammeur
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 15.3%
 
Posts: 84
Joined: 06 Feb 2016, 14:23
Gender: Male
Calculator(s):
MyCalcs profile
Class: À la FAQ + à 42

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby grosged » 12 Feb 2016, 00:56

Optimisation , encore! :D
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 ... :p

Image
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.
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 32.2%
 
Posts: 773
Images: 92
Joined: 14 Sep 2011, 12:29
Gender: Male
Calculator(s):
MyCalcs profile

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby Epharius » 12 Feb 2016, 14:30

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 :f21: :f91: :f43: :f24: tu cherches ton programme et tu appuies deux fois sur :f105: ;)

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 :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby Ti64CLi++ » 12 Feb 2016, 15:41

Bravo pour cette amélioration. Tu voudrais pas faire ta propre fonction Horizontal en Axe :#roll#: :D
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby grosged » 12 Feb 2016, 15:55

Merci, neuronix ;)
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.
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 32.2%
 
Posts: 773
Images: 92
Joined: 14 Sep 2011, 12:29
Gender: Male
Calculator(s):
MyCalcs profile

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby Epharius » 12 Feb 2016, 15:56

Bien optimisé là !
Prochaine étape, ce n'est pas le vaisseau qui bouge mais le décor :p
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 :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby grosged » 14 Feb 2016, 23:30

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:
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)

Image

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! :)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 32.2%
 
Posts: 773
Images: 92
Joined: 14 Sep 2011, 12:29
Gender: Male
Calculator(s):
MyCalcs profile

Online

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby Dream of Omni » 15 Feb 2016, 05:01

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. :)
ImageImageImageImageImage
User avatar
Dream of OmniPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 32.9%
 
Posts: 730
Images: 51
Joined: 21 Feb 2012, 12:04
Location: Quebec, Canada
Gender: Male
Calculator(s):
MyCalcs profile
Class: 11eme annee scolaire termine
YouTube: dreamofomni
Facebook: dreamofomni.page

Re: Scrolling latéral style "montagnes" (astuce)

Unread postby grosged » 15 Feb 2016, 21:17

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)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 32.2%
 
Posts: 773
Images: 92
Joined: 14 Sep 2011, 12:29
Gender: Male
Calculator(s):
MyCalcs profile

PreviousNext

Return to TI-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 8 guests

-
Search
-
Social TI-Planet
-
Featured topics
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
3720 utilisateurs:
>3686 invités
>26 membres
>8 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)