Omnimaga
Calculator Community => [FR] Section Francophone => [FR] Programmation Axe Parser => Topic started by: noelthebest on September 01, 2011, 09:31:41 am
-
Bonjour,
je n'ai pas trop compris en regardant dans la doc' comment créer une appvar et comment la modifier aussi; c'est avec Getcalc() qu'il faut faire ?
Pourriez-vous m'expliquer, concrètement, comme il faut faire ? Cela m'aiderait beaucoup. :)
Merci d'avance. :)
-
Voici une bonne tutoriale: http://www.omnimaga.org/index.php?action=articles;sa=view;article=58
Bonne chance avec elle! :)
-
On reconnait Google Translate, hein ? ;)
Bref. C'est effectivement ce tutorial qu'il faut lire. Je l'ai lu et maintenant, j'utilise des appvars partout pour économiser de la place dans le programme éxecutable O.O
Si tu veux aussi le topic original, pour poser des questions par exemple, c'est ici (http://ourl.ca/8294/152571).
-
Okay je vais voir cela.
Et vive Google Translate ! :D
-
Bon je crois que j'ai compris, merci beaucoup ! :D
-
Double poster est interdit sauf si le topic a été éjecté des "New Posts", sauf si c'est une Super Amelioration d'un programme (en clair, update), et sauf si 6 heures se sont écoulées.
Comme ce n'est pas le cas, il faut utiliser un des boutons "modify" ou "quick modify" ;)
Et de rien :)
-
Okay je vais voir cela.
Et vive Google Translate ! :D
Non, non, je parle français! (trés mal :P)
-
Non, franchement, ton Français est drôle, certes, mais très compréhensible :), surtout comparé a Google Translate <_<
-
Attendez non juste une question : quand on parle des bits, est-ce que je peux mettre autre chose que 0 ou 1 dans mon appvar ? Je veux dire, est-ce que ça convertit automatiquement ou est-ce que je dois effectuer la conversion moi-même ?
Désolé pour le double post par contre, il servait à rien, si un modo pouvait corriger ça. :P
-
Non, franchement, ton Français est drôle, certes, mais très compréhensible :), surtout comparé a Google Translate <_<
Merci :)
-
Merci :)
De rien. En plus, je t'ai comparé a Google Translate et tu me dis merci ???
Désolé pour le double post par contre, il servait à rien, si un modo pouvait corriger ça. :P
Inutile d'appeler un modérateur, tu peux copier le contenu du deuxieme dans le premier en utilisant "modify" ou "quick modify", puis supprimer le deuxieme avec "delete".
Attendez non juste une question : quand on parle des bits, est-ce que je peux mettre autre chose que 0 ou 1 dans mon appvar ? Je veux dire, est-ce que ça convertit automatiquement ou est-ce que je dois effectuer la conversion moi-même ?
Euh, on parle pas de bits dans ce tutorial, mais de bytes, donc d'octets ???
Anglais | |Français | |nombre |
Byte | |Octet | |0-255 |
Bit | |Bit | |0-1 |
ouais, j' ai réussi à faire une table :w00t:
non, j'ai édité et cassé ma table :'(
ouais, je l'ai réparé ! :w00t:
-
Oups pardon j'ai confondu les deux. xD
Donc je peux mettre un nombre entre 0 et 255, c'est bien ça ? :)
-
Oui, sauf si tu les mets deux par deux. Au lieu d'utiliser X→{P} et {P}→X (avec 0<X<255 et P le pointeur), tu peux faire X→{P}r (avec 0<X<65535), et tu le lis avec {P}r→X.
CEPENDANT, comme tu les mets deux par deux, au lieu de mettre le nombre suivant à {P+1}, il faudra le mettre à {P+2}. C'est encore FinaleTI qui me l'a expliqué. Tu peux lui mettre un +1 à lui aussi ;D
-
Ok.
Comme avec les pointeurs quoi.
Mais c'est encore les pointeurs qu'on utilise là en fait, c'est pour ça ! :D
Merci en tout cas, j'ai compris. ;)
-
Les pointeurs, encore, toujours, et partout...
Un jour, ils seront les maîtres du monde ! :D
-
Ils vont nous poursuivre jusque dans notre tombe, disait Mathieu Nebra, il n'avait pas tort... :P
-
Bonjour!
Désolé de rouvrir le sujet, mais j'aurais une petite question: comment faire pour importe un Pic (ou un String ou encore un GDB) d'une appvar? Je m'explique:
Lorsque je créé une appvar dans un autre programme, j'y stocke disons: [FFFFFFFFFFFFFFFF]. Comment faire pour rappeler ceci en entier dans un pic que j'utilise après? Si je fais:
GetCalc("appvPIC",Y0)
Copy(Y0,Pic0,8
Ca ne marche pas, même si je simplifie en Copy("PIC",Pic0).
Quelqu'un pourrait-il m'aider? Merci!
-
Qu'entends-tu par un pic ? Le pointeur ou la variable Ti-Basic ?
Et Copy("PIC",Pic0) est la plus grosse aberration que j'aie jamais vu avec des appvars. Là tu copies la chaîne "PIC" dans Pic0, que tu n'as pas encore déclaré.
Donc je répondrai en fonction de quelle Pic0 tu utilises (cf première question).
-
Je crois qu'il veut copier le contenu d'une appvar dans la variable OS Pic0.
C'est pas le genre de truc que je fais souvent donc je dis peut-être n'importe quoi, mais il me semble que ce qu'il faut faire c'est
GetCalc("appvPIC",Y0)
GetCalc("varPic0")→V
Copy(Y0,V,768)
(où "var" est le token 2nd+8).
-
Enfait, ca qu'il veux faire, c'est ça :
(http://img715.imageshack.us/img715/2057/screenshot2013011912112.png)
Mais il repond que ça ne marche pas pour lui (j'ai pas testé)
-
Ah ok.
En quoi il compile ? S'il compile en application, le Copy(A,Pic0,8) ne marchera pas puisqu'elle se lance directement depuis la flash.
(ps: Dolphin Browser for the win :P)
-
Finalement j'ai tester mon code, mais ça marche pas pour moi... la je vois pas le pb.. voulai meme pas faire une appli, et ça marche quand meme pas... grrrr
En tout cas la v4 du sdz sur mobile (dans le navigateur) est vraiment pas au point... (meme dns dolphin. )
-
Ce qui ne marche pas dans ton code c'est la partie [FFFFFFFFFFFFFFFF]→{P}. Il te faut mettre ça à la place:
[FFFFFFFFFFFFFFFF]→Pic0P
Copy(Pic0P,P,8)
(excusez mon message mal écrit tout à l'heure, j'étais sur mon Android :P)
-
Un programme complet qui devrait marcher :
:.déclare et remplit l'appvar
:GetCalc("appvCARRE",8)→A
:Copy([FFFFFFFFFFFFFFFF],A,8)
:
:.Copie l'appvar dans Pic0
:GetCalc("Pic0",756)→P
:.756 octets est la taille réglementaire d'une Pic
:Copy(A,P,8)
-
Un programme complet qui devrait marcher ::.déclare et remplit l'appvar
:GetCalc("appvCARRE",8)→A
:Copy([FFFFFFFFFFFFFFFF],A,8)
:
:.Copie l'appvar dans Pic0
:GetCalc("Pic0",756)→P
:.756 octets est la taille réglementaire d'une Pic
:Copy(A,P,8)
Non mais en fait, d'après ce que j'ai compris, il ne veut pas importer l'appvar dans la variable OS Pic0, mais l'importer dans la data de son programme à un pointeur appelé Pic0.
Enfin bon, ce serait mieux s'il revenait lui-même nous dire ce qu'il veut.
-
^^Ce que je voudrais, c'est tout simplement un programme qui créé une appvar contenant pic, string et GDB, puis ensuite appeler cet appvar d'un autre programme et y transmettre ses données dans d'autres pic, string et GDB. Tout celà à compiler en application, si possible.
En gros, c'est pour éviter que mon programme soit trop lourd et ne prenne pas plus d'une page pour pouvoir compiler en application.
-
Si tu compiles en application, tu ne peux rien modifier de ce qu'il y a dans ton code une fois compilé. Je te suggère de regarder du côté des saferam genre L1 à la place.
-
Je sais que je ne peux rien modifier, mais si il y a une solution pour les appvars, j'aimerai la connaître. Je vais regarder les "saferam".
-
En gros pour les saferam, au lieu de copier ta sprite dans ton pointeur Pic0, tu la copies dans le pointeur L1 (que tu n'as même pas besoin de déclarer) et il marchera comme le pointeur Pic0 ensuite. Tu pourras par exemple faire Pt-On(0,8,L1). Et si tu as d'autres sprites à copier, tu peux copier la suivante à L1+8, etc.
-
pourrais-tu me communiquer le lien du tuto expliquant ça stp?
-
Alors là, je me souviens avoir utilisé celui de kindermoumoute sur le site du zero au début mais c'est pas lui qui m'a appris à me servir de L1 et tout. Je dis pas qu'il ne l'explique pas, j'en sais rien, juste que je n'ai pas lu cette partie là du tuto si elle existe. J'avais juste lu le début et après je me suis dit qu'il valait mieux passer à la pratique et commencer à coder :P
Mais je te conseille quand même de lire ce tuto si tu est débutant (mais j'ai pas de lien, j'arrive pas à aller sur le sdz en ce moment).
-
Pour le sdz, c'est normal il est en passage vers la 1.4 depuis quelques semaines et ils "rénovent" tout, il y a encore pleins de bugs (enfin ça je pense que tu le sais déjà). Et comme par hasard, juste au moment où j'en aurais eu le plus besoin...
-
(enfin ça je pense que tu le sais déjà)
Non, en fait j'en savais rien. J'ai vu que rien ne marchait quand j'ai voulu te chercher un lien et tu viens de m'apprendre qu'ils avaient des bugs. Faut dire que j'ai un compte sdz mais je m'en sers jamais :P
-
Je suis sur le sdz également, c'est aussi bien pratique ;)
Merci tout de même!
-
euh... une dernière petite question: j'ai tout compris, mais comment faire pour mettre tous mes pics (ou autre...) dans l'appvar? si je fais
:GetCalc("appvA",40)->L1
:L1->Pic0
:L1+8->Pic1
:L1+16->String0
:[FFFFFFFFFFFFFFFF]->{Pic0}
:[1111111111111111]->{Pic1}
:"Bonjour le monde"->{String1}
:Pt-On(0,0,Pic0
:Pt-On(8,8,Pic1
:DispGraph
:Text(20,20,String0
ca ne marche pas!
-
:GetCalc("appvA",40)->L1
O.O
Maimaimais L1 c'est une constante définie par l'Axe !
Si tu veux accéder aux données contenues dans (par exemple) Pic1 dans (re-par exemple) appvABC, tu dois :- Accéder à Pic1 avec GetCalc("Pic1"). Il ne faut pas écrire Pic1 en toutes lettres hein, faut aller le chercher dans [vars] [4].
- Créer appvABC avec GetCalc("appvABC",756) : puisqu'une Pic fait 756 octets, on a qu'à créer une appvar de même taille.
- Copier le contenu de la Pic dans l'appvar.
Tout cela se résume en trois lignes de code :
:GetCalc("Pic1")→P
:GetCalc("appvABC",756)→A
:Copy(P,A,756) ← cette ligne copie les 756 octets commençant à l'adresse contenue dans P sur les 756 octets commençant à l'adresse contenue dans A.
:.En clair, ça copie les 756 octets de P dans A.
Et avec ça, tu auras une appvar appelée ABC qui fera 756 octets (plus le header des appvars et tout, donc un peu plus) et qui contiendra une image.
EDIT : il faut que tu comprennes qu'en Axe, le Pic1 que tu utilises pour tes sprites et tout n'est pas le même que le Pic1 auquel tu accèdes avec GetCalc : le premier n'est qu'un nombre assigné à un nom alors que le deuxième est une variable de la calculatrice, contenant une image !
-
oui, pardon, je me suis trompé. en fait, comme j'ai plein de pics differents, j'aimerai faire un truc du genre:
:GetCalc("appvA", 40)->{L1}
Pic0A->{L1}
Pic0B->{L1+8}
Pic0C->{L1+16}
[1111111111111111]->Pic0A
[2222222222222222]->Pic0B
[3333333333333333]->Pic0C
.ensuite le reste du programme lorsqu'on utilise les pics.
Pt-On(0,0,Pic0A.etc..
Tout marche tres bien. seul truc:les tiles me prennet toujours autant de memoire! j'aimerai utiliser l'appvar pour les y stocker!
-
si tu veux utiliser une appv pour stocker des spirites, il faudrait plus faire
GetCalc("appvA",40)->A
// j'ai l'adresse de l'appvar
[1111111111111111]->Pic0A
[2222222222222222]
[3333333333333333]
// on a pas besoin des autres pointeurs ( les pic0B,C) car Pic0B=(Pic0A+8) et Pic0C=(Pic0A+16)
// après on va copier les spirites dans l'appv
Copy(Pic0A,A,24)
et là, on aura une appv contenant tes spirites
après pour les utiliser, on fait :
GetCalc("appvA")->A
Pt-On(0,0,A)
Pt-On(8,0,A+8)
...
j'espère avoir été clair et surtout avoir bien compris ce que tu voulais faire ;D
-
En fait, je crois surtout qu'il faut vite apprendre la différence entre pointeur et variable. Tout sera clair à partir de là et rien ne le sera sans ça.
-
c'est génial mais j'ai encore un tout petit petit petit truc...
Peux-t-on faire
:GetCalc("appvA")->A
:A->Pic0
:A+16->Pic0
tout ca pour stocker les sprites dans des pointeurs differents...
-
Et non, les Pic sont des pointeurs statiques, c'est à dire qu'on ne peut pas leur assigner une valeur variable, ils ne peuvent que contenir une adresse passée avec Data(), [hex] ou "chaine".
En plus t'en as pas besoin, c'est A ton pointeur. Tu peux accéder à tes sprites avec par exemple Pt-On(0,0,A) ou Pt-On(0,0,A+16).
-
c'est génial mais j'ai encore un tout petit petit petit truc...
Peux-t-on faire
:GetCalc("appvA")->A
:A->Pic0
:A+16->Pic0
tout ca pour stocker les sprites dans des pointeurs differents...
En fait, je crois surtout qu'il faut vite apprendre la différence entre pointeur et variable. Tout sera clair à partir de là et rien ne le sera sans ça.