π
<-
Chat plein-écran
[^]

Scrolling latéral style "montagnes" (astuce)

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

Message non lude 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
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7.1%
 
Messages: 1110
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

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

Message non lude EL PHARA » 06 Fév 2016, 17:10

Woua ^^
Avatar de l’utilisateur
EL PHARAProgrammeur
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 15.3%
 
Messages: 84
Inscription: 06 Fév 2016, 14:23
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: À la FAQ + à 42

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

Message non lude grosged » 12 Fév 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: Tout sélectionner
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
Dernière édition par grosged le 12 Fév 2016, 14:49, édité 1 fois.
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

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

Message non lude Epharius » 12 Fév 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
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7.1%
 
Messages: 1110
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

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

Message non lude Ti64CLi++ » 12 Fév 2016, 15:41

Bravo pour cette amélioration. Tu voudrais pas faire ta propre fonction Horizontal en Axe :#roll#: :D
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

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

Message non lude grosged » 12 Fév 2016, 15:55

Merci, neuronix ;)
En Axe? Je ne connais pas, désolé.

Voici la version 3 , appelée scroll3

Code: Tout sélectionner
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
Dernière édition par grosged le 12 Fév 2016, 16:18, édité 1 fois.
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

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

Message non lude Epharius » 12 Fév 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
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7.1%
 
Messages: 1110
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

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

Message non lude grosged » 14 Fév 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: Tout sélectionner
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: Tout sélectionner
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: Tout sélectionner
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! :)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

En ligne

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

Message non lude DoOmnimaga » 15 Fév 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. :)
Dream of Omnimaga
ImageImageImageImage
Avatar de l’utilisateur
DoOmnimagaPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 7.7%
 
Messages: 682
Images: 25
Inscription: 21 Fév 2012, 12:04
Localisation: Quebec, Canada
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 11eme annee scolaire termine
YouTube: DJOmnimaga
Twitter/X: DJOmnimaga
Facebook: djomnimaga

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

Message non lude grosged » 15 Fév 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)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

PrécédenteSuivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 8 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1044 utilisateurs:
>994 invités
>44 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)