π
<-
Chat plein-écran
[^]

[TUTO][AXE] Nouvelle methode de scrolling d'image en axe.

Regroupement de tous les tutoriaux z80 (82/83/84)

[TUTO][AXE] Nouvelle methode de scrolling d'image en axe.

Message non lude nikitouzz » 28 Oct 2012, 21:08

Matref a fait un tuto similaire : http://espace-ti.forumactif.com/t698-ax ... nd-d-ecran ( les deux sont autant valables l'un que l'autre )

Nous allons donc voir comment faire pour faire défiler l’écran en copiant non octet par octet mais bit par bit...

1) Nous allons tout d'abord absorber l'image enregistrée dans la calculatrice :
Code: Tout sélectionner
:[pic0]->pic1
:dispgraph(pic1)



2) Il faut enregistrer l'état du premier bit de chaque ligne dans une liste :
Code: Tout sélectionner
:0->r1
:for(64)
:({r1*12+L6}e0)->{r1+select(r1,+1->r1)}
:End


3) Ensuite on va tout simplement décaler le buffer d'un pixel :
Code: Tout sélectionner
:horizontal -


4) Il faut donc ensuite copier l’état des bits enregistrés dans la liste L1 de l'autre côté :
Code: Tout sélectionner
:0->r1
:for(64)
:{r1+L1}?{r1*12+11+L6->r2} or 1->{r2}
:r1++
:End


Ce qui nous donne en code final pour le scrolling de droite à gauche :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
:[pic0]->pic1
:dispgraph(pic1)
:while 1
:0->r1
:for(64)
:({r1*12+L6}e0=1)->{r1+select(r1,+1->r1)}
:End
:horizontal -
:0->r1
:for(64)
:{r1+L1}=1?{r1*12+11+L6->r2} or 1->{r2}
:r1++
:End
:EndIf getkey


de gauche à droite :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
:[pic0]->pic1
:dispgraph(pic1)
:while 1
:0->r1
:for(64)
:({r1*12+11+L6}e4=1)->{L1+select(r1,+1->r1)}
:End
:horizontal +
:0->r1
:for(64)
:{r1+L1}=1?{r1*12+L6->r2} or 128->{r2}
:r1++
:End
:EndIf getkey


De bas en haut :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
:[pic0]->pic1
:dispgraph(pic1)
:while 1
:0->r1
:for(12)
:{R1+L6}->{L1+select(r1,+1->r1)}
:End
:vertical -
:0->r1
:for(12)
:{r1+L1}->{select(r1,+1->r1)+744+L6}
:End
:EndIf getkey


De haut en bas :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
:[pic0]->pic1
:dispgraph(pic1)
:while 1
:dispgraph
:0->r1
:for(12)
:{r1+744+L6}->{L1+select(r1,+1->r1)}
:End
:vertical +
:0->r1
:for(12)
:{r1+L1}->{select(r1,+1->r1)+L6}
:End
:EndIf getkey


Enjoy ;)
Dernière édition par nikitouzz le 29 Oct 2012, 19:29, édité 4 fois.
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: [AXE] nouvelle methode de scrolling d'image en axe.

Message non lude Hayleia » 29 Oct 2012, 08:05

http://www.omnimaga.org/index.php?topic ... #msg229323
Image
Et bim, Runer112 fait du scrolling dans tous les sens que tu veux 20 fois plus vite que Matref et toi réunis :P
_____________
Plus sérieusement, il y a un truc que j'ai pas compris du tout dans vos deux tutoriels. Et vous le faites tous les deux en plus.

Vous utilisez deux boucles for:
-une pour sauvegarde une ligne/colonne de pixels avant de scroller
-l'autre pour restaurer cette ligne/colonne de pixels après avoir scrollé

Mais je vous rappelle que vous avez votre image entière dans votre mémoire, au pointeur Pic1. La première boucle for est donc inutile, il suffit d'arranger la deuxième pour qu'elle aille chercher les pixels qu'ils lui faut dans l'image elle même.
_____________
Un autre truc que j'ai pas compris, mais là, il n'y a que toi qui le fait. Pourquoi tu essaie de désarchiver Pic0 (en le mettant entre crochets en plus) avant de l'absorber dans le programme ??? Ça sert à rien et je crois même que ça marche pas.

nikitouzz a écrit:Sa méthode est très bonne et valable pour un simple fond d’écran qui défile, cependant si on veut l'inclure dans un jeu on se rends vite compte d'un bug avec le scrolling horizontal... en effet la methode de matreffeytontias pour faire defilez l'ecran verticalement est tres bien et valable, mais celle pour le scrolling horizontal de va pas du tout car il copie l'octets entier qu'il veut copier de l'autre coter de l'ecran ce qui cree des incompatibilitee.

Non, il copie l'octet entier dans L1 lors de sa première boucle mais dans la deuxième, il ne replace qu'un bit sur l'écran, pas tout l'octet.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: [AXE] nouvelle methode de scrolling d'image en axe.

Message non lude nikitouzz » 29 Oct 2012, 09:36

Ce tutoriel est destiné aux débutants.

1) Le code de Runer est bien plus compliqué pour des débutants et il est pas du tout facile a comprendre
2) Je te confirme que le code de matref met en jeu un octet entier ce qui gène le bon déroulement des programmes dans CERTAINES situations.
3) Je tente de désarchiver l'image car un débutant qui copiera ce code verra le code marcher que l'image soit archivée ou pas, et ce code marche : les crochets sont utiles ici.

DONC CONCLUSION :

Mon code marche et qui plus est dans tous les cas...
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: [AXE] nouvelle methode de scrolling d'image en axe.

Message non lude Hayleia » 29 Oct 2012, 09:50

nikitouzz a écrit:et bien hayleia si tu veux faire un nouveaux tutoriel ( je te signale que celui de runer112 n'est pas valable pour debutant et ce tuto est visé au debutant ) va y je ne te retiens pas ;)

Non mais le code de Runer je l'ai mis pour rigoler :p

nikitouzz a écrit:quand au crocht, hayleia c'est pour desarchiver une image qui se trouve dans la calculatrice je pensais que tu connaissais ceci.... et je tente de la desarchiver car un debutant qui aura copier ce code au moins sa marcheras pour toute les situations.... si l'image n'est pas desarchiver sa va cree une erreur...

Si l'image n'est pas désarchivée ça ne change rien du tout. L'Axe peut absorber une image archivée donc ça ne sert à rien de la désarchiver avant, surtout pour la réarchiver après, ça fait juste perdre du temps lors de la compilation.

Mais est-ce que tu as lu ça:
Hayleia a écrit:Vous utilisez deux boucles for:
-une pour sauvegarde une ligne/colonne de pixels avant de scroller
-l'autre pour restaurer cette ligne/colonne de pixels après avoir scrollé

Mais je vous rappelle que vous avez votre image entière dans votre mémoire, au pointeur Pic1. La première boucle for est donc inutile, il suffit d'arranger la deuxième pour qu'elle aille chercher les pixels qu'ils lui faut dans l'image elle même.

Ça n'était pas en rapport avec le code de Runer, c'était une amélioration de votre code (à Matref et toi) qui peut très bien être comprise par des débutants.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: [AXE] nouvelle methode de scrolling d'image en axe.

Message non lude nikitouzz » 29 Oct 2012, 09:53

je te l'accorde pour le scrolling de bas en haut ou l'inverse sa irait bien, mais pour le scrolling de gauche a droite ou de droite a gauche sa serait plus lours que cette methode mais je te promet d'y jeter un coup d'oeil ;)
j'ai corrigé le reste sinon ;)
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: [AXE] nouvelle methode de scrolling d'image en axe.

Message non lude Hayleia » 29 Oct 2012, 09:59

nikitouzz a écrit:je te l'accorde pour le scrolling de bas en haut ou l'inverse sa irait bien, mais pour le scrolling de gauche a droite ou de droite a gauche sa serait plus lours que cette methode mais je te promet d'y jeter un coup d'oeil ;)
j'ai corrigé le reste sinon ;)

Au contraire, ça marche beaucoup mieux pour le scrolling horizontal que pour le scrolling vertical puisque pour le scrolling horizontal tu dois dans tous les cas chercher des pixels (en colonne) donc tant qu'à faire, ne faire qu'une boucle cherchant des pixels; alors que pour le scrolling horizontal, il est beaucoup plus rapide de chercher des octets, donc plus rapide d'utiliser une méthode améliorée de la votre (au lieu de mettre deux boucles for, on met deux Copy).

Je sais que ça marche bien en horizontal, c'est ce que j'ai utilisé dans Rainbow Dash Attack:
Image
(note que je pouvais le faire scroller beaucoup plus rapidement).

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: [AXE] nouvelle methode de scrolling d'image en axe.

Message non lude nikitouzz » 29 Oct 2012, 11:00

oui sa marche je SAIS ^^ mais sa crée des bugs lorsque parallelement on s'occupe des pixels du buffer scroller, comme la methode de matrer, elle marche mais elle crée des bug dans CERTAIN cas ^^
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: [AXE] nouvelle methode de scrolling d'image en axe.

Message non lude Hayleia » 29 Oct 2012, 12:50

nikitouzz a écrit:oui sa marche je SAIS ^^ mais sa crée des bugs lorsque parallelement on s'occupe des pixels du buffer scroller, comme la methode de matrer, elle marche mais elle crée des bug dans CERTAIN cas ^^

Quels bugs ?
Bon, avec ma méthode, toute modification faite sur le buffer est annulée lors du prochain tour (c'est comme ça que tu vois le score s'afficher et qu'au bout d'un tour il y a pas un bordel à droite) mais ça peut être un avantage ou un inconvénient. Dans mon cas ça m'arrange.
Mais j'ai jamais eu de bugs en tout cas. :quest:

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: [AXE] nouvelle methode de scrolling d'image en axe.

Message non lude nikitouzz » 29 Oct 2012, 19:31

Donc enfaite matref avait fait une erreur de frappe dans son tuto, ce qui rendais le code totalement faux, j'ai donc corriger mon tuto en disant que les deux etait aussi valable l'un que l'autre.

et moin justement je veux faire des modifications sur le buffer pour mon jeu ;)
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: [AXE] nouvelle methode de scrolling d'image en axe.

Message non lude Hayleia » 30 Oct 2012, 07:55

nikitouzz a écrit:et moin justement je veux faire des modifications sur le buffer pour mon jeu ;)

Ah, dans ce cas, oublie tout ce que j'ai dit :D

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Suivante

Retourner vers Tutoriaux

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 52 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.
1880 utilisateurs:
>1859 invités
>16 membres
>5 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)