π
<-

[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.

Unread postby 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: Select all
:[pic0]->pic1
:dispgraph(pic1)



2) Il faut enregistrer l'état du premier bit de chaque ligne dans une liste :
Code: Select all
: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: Select all
:horizontal -


4) Il faut donc ensuite copier l’état des bits enregistrés dans la liste L1 de l'autre côté :
Code: Select all
: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: Select all
:[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: Select all
:[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: Select all
:[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: Select all
:[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 ;)
Last edited by nikitouzz on 29 Oct 2012, 19:29, edited 4 times in total.
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
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

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

Unread postby 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 wrote: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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

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

Unread postby 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
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

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

Unread postby Hayleia » 29 Oct 2012, 09:50

nikitouzz wrote: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 wrote: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 wrote: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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

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

Unread postby 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
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

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

Unread postby Hayleia » 29 Oct 2012, 09:59

nikitouzz wrote: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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

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

Unread postby 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
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

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

Unread postby Hayleia » 29 Oct 2012, 12:50

nikitouzz wrote: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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

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

Unread postby 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
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

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

Unread postby Hayleia » 30 Oct 2012, 07:55

nikitouzz wrote: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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Next

Return to Tutoriaux

Who is online

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

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
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.
761 utilisateurs:
>735 invités
>18 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
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)