**Le SDK pour fx-9860/Graph85** Topic officiel
Posté le 18/07/2007 15:08
Vu la multitude de topics sur le SDK de la 85, j'ai décidé d'en faire un seul et unique, où l'on posera nos problèmes et explications sur ce même topic, et non pas sur 50, par souci de clareté et de facilité.
Des nouveautés ? Des problèmes ? Des idées ?
Exposez les ici !
Voici une liste de commandes commencées par Muelsaco. N'hésitez pas à rajouter vos commandes dans le topic je les rajouterai pour en faire profiter tout le monde. Merci.
// Locate X,Y,"Texte"
:arrow: locate(x,y); Print("Texte");
// Text X,Y,"Texte"
:arrow: PrintMini(x,y,"Texte",0);
// F-Line x1,y1,x2,y2
:arrow: Bdisp_DrawLineVRAM(x1,y1,x2,y2);
// Tracer une ligne blanche
:arrow: Bdisp_ClearLineVRAM(x1,y1,x2,y2);
// PxlOn x,y & PxlOff x,y
:arrow: Bdisp_SetPoint_VRAM(x,y,<couleur>)
<couleur> : 0 pour le blanc, 1 pour le noir
// Cls
:arrow: Bdisp_AllClr_DDVRAM();
// Actualiser l'écran
:arrow: Bdisp_PutDisp_DD();
Fonction très importante. Elle permet d'afficher une image tracée virtuellement dans la VRAM. Toute image doit d'abord être dessinée dans la VRAM puis affichée à l'écran. Vous ne verrez donc pas votre image s'afficher tant que vous n'aurez pas appelé Bdisp_PutDisp_DD(). À noter que les fonctions GetKey() et Print() l'appellent automatiquement.
While <exp1>
<code>
WhileEnd
:arrow:
while(<exp1>)
{
<code>
}
// StoPict x
:arrow: SaveDisp(x);
x variant de 1 à 3 uniquement.
// RclPict x
:arrow: RestoreDisp(x);
x variant de 1 à 3 uniquement.
// Ouvrir un popup (comme les erreurs syntaxe, etc)
:arrow: PopUpWin(<taille>);
<taille> : de 1 à 8.
Rappels sur les variables globales : Source
* Les variables globales sont à utiliser avec précaution, puisqu'elles créent des liens invisibles entre les fonctions. La modularité d'un programme peut en souffrir et le programmeur risque de perdre la vue d'ensemble.
* Il faut faire attention à ne pas cacher involontairement des variables globales par des variables locales du même nom.
* Le codex de la programmation défensive nous conseille d'écrire nos programmes aussi 'localement' que possible.
L'utilisation de variables globales est jusitifiée, si
* Plusieurs fonctions qui ne s'appellent pas ont besoin des mêmes variables, ou
* Plusieurs fonctions d'un programme ont besoin du même ensemble de variables. Ce serait alors trop encombrant de passer toutes les variables comme paramètres d'une fonction à l'autre.
Citer : Posté le 27/08/2014 19:49 | #
En réalité c'est un tableau, mais je ne vois pas en quoi ça serait problématique...
A noter d'ailleurs que seul le premier élément de ce tableau est concerné.
Citer : Posté le 27/08/2014 19:51 | #
laisse moi deviner, le tableau est un tableau de dimensions très grandes ? Genre tableau de sprites ?
Si oui, j'ai eu le même bug dans les succès de Fruit Ninja, et le l'ai passé en insérant un élément vide
Citer : Posté le 27/08/2014 20:18 | #
C'est un tableau de 18 cases, mais comme c'est un tableau de structures il doit probablement peser lourd
Je vais essayer de l'allouer dynamiquement
Citer : Posté le 27/08/2014 20:27 | #
(Tu as peut-être résolu ce bug, mais ça m'intéresse de savoir pourquoi il existait pour éviter de le reproduire.)
En gros tu passais l'adresse d'un structure à une fonction, le premier élément de cette structure étant un tableau (de sructures), et la première valeur du tableau (uns structure) est corrompue ?
Citer : Posté le 27/08/2014 20:44 | #
Bon, en fait c'est pire en allouant dynamiquement... tant pis, va pour la composante kamikaze.
@Lephenixnoir : non, la fonction demande un tableau de structures, donc en le passant c'est l'adresse de la première structure que j'envoie. Ensuite le premier élément de cette structure, quel qu'il soit, est corrompu.
Citer : Posté le 27/08/2014 20:53 | #
Tu as comparé le pointeur envoyé et celui reçu ?
Citer : Posté le 27/08/2014 20:55 | #
Tu veux parler de l'adresse mémoire ?
Citer : Posté le 27/08/2014 21:01 | #
Ben, le contenu, la valeur du pointeur quoi. Celle que tu affiches avec %p dans sprintf().
Citer : Posté le 28/08/2014 10:59 | #
Salut à tous, j'ai un problème, le voici :
J'essaye d'afficher une image mais ça marche pas. Voici mon code :
ML_clear_screen();
ML_clear_vram();
while(IsKeyDown(KEY_CTRL_SHIFT)!=1){
ML_BMP_OR("Menu",1,1,127,63);
ML_display_vram();
}
ML_clear_screen();
ML_clear_vram();
locate(1,1);
Print("Menu");
Ça n'affiche rien. Mais lorsque j'appuie sur SHIFT : Ça affiche bien "menu".
Edit : Merci d'utiliser la balise code pour insérer du code dans les messages.
♣ Jeu en BASIC CASIO ♣
♥ La Programmation ♥
♥ Les Jeux Vidéo ♥
♠ JAVASCRIPT ♠
♠ JAVA ♠
♠ C ♠
♠ C# ♠
♠ PHP/MY SQL ♠
♠ BASIC CASIO ♠
* Pour la plupart de
ces languages, je ne
possède que des bases...
La programmation ne fait pas exception
☺ La valeur n'attend pas le nombre des années. 8)
Citer : Posté le 28/08/2014 11:10 | #
D'un, regarde la taille de l'écran des Graph 35++/75/85/95 : http://wiki.planet-casio.com/fr/Graph_35%2B_USB
De deux, ceci remplace avantageusement le IsKeyDown(x) != 1
De trois, tout ce qui est entre guillemets sont des chaines de caractères
De quatre, ML_bmp_or() demande un pointeur sur un tableau : Wiki
De cinq, si tu avais lu la doc fournie avec MonochromeLib, tu aurai eu un exemple précis de comment utiliser la fonction.
Conclusion : "Menu" est strictement différent de Menu.
Conclusion de la conclusion : RTFM ! J'ai mis exprès des liens de partout pour te montrer que d'un Google sait beaucoup de choses, et que de deux si il y a un Wiki, des documentations, etc., c'est parce qu'une grande majorité de vos problèmes peut être évitée en lisant ces articles...
Ajouté le 28/08/2014 à 11:12 :
Ah, aussi, pour les fond d'écran, il y a un truc hyper rapide :
Citer : Posté le 28/08/2014 11:15 | #
J'avait déjà essayer Menu sans guillemet mais ça m'affichait une erreur dans la console
La taille est d'un écran est de 128*64 je le savais déja...
J'ai besoin d'une image de 127*63...
♣ Jeu en BASIC CASIO ♣
♥ La Programmation ♥
♥ Les Jeux Vidéo ♥
♠ JAVASCRIPT ♠
♠ JAVA ♠
♠ C ♠
♠ C# ♠
♠ PHP/MY SQL ♠
♠ BASIC CASIO ♠
* Pour la plupart de
ces languages, je ne
possède que des bases...
La programmation ne fait pas exception
☺ La valeur n'attend pas le nombre des années. 8)
Citer : Posté le 28/08/2014 11:18 | #
La réflexion n'existe pas en C... c'est évident puisque c'est un code compilé...
Citer : Posté le 28/08/2014 11:18 | #
T'as du caca devant les yeux ? Je te met un lien sur la doc de ML_bmp_or(Menu, 1, 1, 127, 64), je te l'écris, et tu vois pas où est le problème ?
Ajouté le 28/08/2014 à 11:19 :
La casse, tu connais ?
Citer : Posté le 28/08/2014 11:19 | #
Et merci pour le IsKeyUp
♣ Jeu en BASIC CASIO ♣
♥ La Programmation ♥
♥ Les Jeux Vidéo ♥
♠ JAVASCRIPT ♠
♠ JAVA ♠
♠ C ♠
♠ C# ♠
♠ PHP/MY SQL ♠
♠ BASIC CASIO ♠
* Pour la plupart de
ces languages, je ne
possède que des bases...
La programmation ne fait pas exception
☺ La valeur n'attend pas le nombre des années. 8)
Citer : Posté le 28/08/2014 11:21 | #
Désolé d'avoir pris ce ton, mais bon, t'es pas le premier à nous faire ce coup là...
Citer : Posté le 28/08/2014 11:22 | #
Oui je connait la casse et je n'ai jamais dit que je ne savais pas où était mon problème...
Ajouté le 28/08/2014 à 11:31 :
Merci, ça marche :boulet:
♣ Jeu en BASIC CASIO ♣
♥ La Programmation ♥
♥ Les Jeux Vidéo ♥
♠ JAVASCRIPT ♠
♠ JAVA ♠
♠ C ♠
♠ C# ♠
♠ PHP/MY SQL ♠
♠ BASIC CASIO ♠
* Pour la plupart de
ces languages, je ne
possède que des bases...
La programmation ne fait pas exception
☺ La valeur n'attend pas le nombre des années. 8)
Citer : Posté le 28/08/2014 11:33 | #
J'ai modifié le post originel parce que c'en était insupportable tellement c'était le bordel (fonctions données deux fois, références incorrectes, infos oubliées, ...).
Déjà que l'idée de traduire le Basic en C est pas excellente, il faudrait au moins que ça soit propre.
Citer : Posté le 28/08/2014 11:38 | #
Nan c'est pas ce projet là, ces codes c'est pour celui sur les dragons...
♣ Jeu en BASIC CASIO ♣
♥ La Programmation ♥
♥ Les Jeux Vidéo ♥
♠ JAVASCRIPT ♠
♠ JAVA ♠
♠ C ♠
♠ C# ♠
♠ PHP/MY SQL ♠
♠ BASIC CASIO ♠
* Pour la plupart de
ces languages, je ne
possède que des bases...
La programmation ne fait pas exception
☺ La valeur n'attend pas le nombre des années. 8)
Citer : Posté le 28/08/2014 11:39 | #
Le post originel c'est celui qui est tout en haut, le post de Matronix quoi...
Citer : Posté le 28/08/2014 11:46 | #
Ah ok.
Ahhhhhhh :demon:
Big problem. Quand je met le programme sur ma calto, ça affiche :
REBOOT : [EXIT]
INITIALIZE : [EXE]
ADDRESS(R)
TARGET=E6FF2136
PC=08100014
Je fais quoi ?
♣ Jeu en BASIC CASIO ♣
♥ La Programmation ♥
♥ Les Jeux Vidéo ♥
♠ JAVASCRIPT ♠
♠ JAVA ♠
♠ C ♠
♠ C# ♠
♠ PHP/MY SQL ♠
♠ BASIC CASIO ♠
* Pour la plupart de
ces languages, je ne
possède que des bases...
La programmation ne fait pas exception
☺ La valeur n'attend pas le nombre des années. 8)
Citer : Posté le 28/08/2014 11:48 | #
Tu nous donnes ton code parce que là on peut rien faire.
Si, je peux au moins te dire que tu as tenté d'accéder à des données supposées être en-dehors de la mémoire physique de la machine.