**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 08/06/2013 01:29 | # | Fichier joint
Bdisp_AllClr_DDVRAM(); supprime juste le contenu de la VRAM, mais ne supprime pas le contenu de l'écran si je ne me trompe pasessaye avec ce code :
Bdisp_AllClr_DDVRAM();
while (1)
{
Bdisp_PutDisp_DD();
if(IsKeyDown(KEY_CHAR_1)==1)
{
Bdisp_AllClr_DDVRAM();
PrintMini(5,5,"OK",1);
}
if(IsKeyDown(KEY_CHAR_1)==1)
{
Bdisp_AllClr_DDVRAM();
PrintMini(5,5,"Flute",0);
}
}
La fonction Bdisp_PutDisp_DD(); est très importante pour afficher des choses à l'écran, en effet elle "actualise" l'affichage.
Voici un petit schéma que j'avais faites et qui explique assez rapidement le code.
Citer : Posté le 08/06/2013 02:56 | #
désolé de te contredire Smashmaster, mais le but de Bdisp_AllClr_DDVRAM(); est justement de vider l'écran (DD=display driver) et la ram en même temps.
et effectivement, il faut mettre Bdisp_PutDisp_DD(); dans le code, c'est primordial, sans cela, on ne fait que travailler dans la mémoire et pas a l'écran.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed
-mon tuto sur les Str
Mes calto: G25+, G75
Mon minecraft en dévelopement
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Citer : Posté le 08/06/2013 04:11 | #
D'accord, je n'étais plus trop sûr de moi, merci
édit : j'ai modifié mon précédent schéma.
Citer : Posté le 10/06/2013 23:41 | #
J'ai un problème
Voila, pour la plus part, vous savez que j'ai décidé de reprogrammer mon minecraft en C++... et bien j'ai besoins d'une lib: string
Quand je l'include, le compilateur m'envoie me faire mettre, je comprend pas pourquoi...
Voici l'erreur trouvée par le compilateur:
C:\Program Files\CASIO\fx-9860G SDK\OS\SH\include\string(27) : C2500 (E) Illegal token "string"
Et voici la ligne correspondante dans le fichier string:
class string;
Si quelqu'un (je pense a Dodormeur entre autres) qui programme ou a programmé en C++ sur le SDK peut m'aider, je lui en serais très reconnaissant
PS: je n'ai cité qu'une seule erreur, mais en fait la liste est longe, et elles vienent toujours du fichier string
Ajouté le 10/06/2013 à 23:54 :
c\'est bon, j\'ai trouvé, une étourderie de ma part (pas l\'habitude de coder en C++, mon main avait l\'extension .c alors que tous mes autres fichiers avaient l\'extension .cpp et .hpp, ce que je peux être bette parfois )
Ajouté le 11/06/2013 à 00:27 :
Casio remonte encore dans mon estime
CASIO :boulet:
en résumé: le sdk de casio n\'a pas la STL (standard template library), cette librairie est indispensable a la plus part des projets de C++, et casio n\'est pas foutu de l’intégrer correctement au sdk, mon minecraft viens de faire un superbe faux pas
A moins de trouver une alternative, une partie du programme va devoir être A NOUVEAU reprogrammée
J\'en appelle donc a nouveau a tout ceux qui ont programmé en C++, quelles alternatives avez vous choisi?
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed
-mon tuto sur les Str
Mes calto: G25+, G75
Mon minecraft en dévelopement
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Citer : Posté le 11/06/2013 19:32 | #
je test et je vous dis ca
Calcu: graph 35+ tweaké
Transformez votre graph 35+ SH4 en graph 75!
C'est par ici!
Etes vous un vrai trader???
Business
Saurez vous vaincre les puissances ennemis?
Swords and Sandals 2
Un 2048 ca vous tente??
2048
Citer : Posté le 12/06/2013 11:17 | #
J'ai testé le colorateur du site avec le code de Smashmaster. Selon vous, y'a t-il des couleurs ou des trucs à changer ?
[b][blue]while[/blue][/b] (1)
{
Bdisp_PutDisp_DD();
[b][blue]if[/blue][/b](IsKeyDown(KEY_CHAR_1)==[maroon]1[/maroon])
{
Bdisp_AllClr_DDVRAM();
PrintMini(5,[maroon]5[/maroon],[gray]"OK"[/gray],[maroon]1[/maroon]);
}
[b][blue]if[/blue][/b](IsKeyDown(KEY_CHAR_1)==[maroon]1[/maroon])
{
Bdisp_AllClr_DDVRAM();
PrintMini(5,[maroon]5[/maroon],[gray]"Flute"[/gray],[maroon]0[/maroon]);
}
}
et le code de Bonger (page précédente)
[brown]#include [gray]"string.h"[/gray][/brown]
[brown]#include [gray]"stdlib.h"[/gray][/brown]
[brown]#include [gray]"stdio.h"[/gray][/brown]
[purple]char[/purple] *string(){
[purple]char[/purple] str[]=[gray]"test"[/gray];
[green]//strcat (str,[gray]"ajout"[/gray]); //cette ligne fait planter le SDK[/green]
[b][blue]return[/blue][/b] str;
}
[purple]int[/purple] AddIn_main(int isAppli, unsigned short OptionNum)
{
[purple]unsigned int[/purple] key;
[purple]char[/purple] *texte;
texte = string();
locate(1,[maroon]2[/maroon]);
Print(texte);
[b][blue]while[/blue][/b](1){
GetKey(&key);
}
[b][blue]return[/blue][/b] 1;
}
Citer : Posté le 12/06/2013 13:55 | #
tout est bon, sauf a la ligne:
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed
-mon tuto sur les Str
Mes calto: G25+, G75
Mon minecraft en dévelopement
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Citer : Posté le 12/06/2013 14:25 | #
Le premier paramètre de la fonction locate est noir, mais sinon tout est bon.
Citer : Posté le 12/06/2013 14:29 | #
faut que j'inverse la coloration des chaines de caractères et des commentaires et que je modifie un petit truc, et c'est bon
Citer : Posté le 19/06/2013 18:40 | # | Fichier joint
Rahhh!!! j'en peux plus de ce sdk qui bug pour rien!
Je vous transfère le fichier si vous voulez trouver l'erreur. Là j'avoue que je trouve pas!
On m'avais jamais fait un Illegal Token ""
Calcu: graph 35+ tweaké
Transformez votre graph 35+ SH4 en graph 75!
C'est par ici!
Etes vous un vrai trader???
Business
Saurez vous vaincre les puissances ennemis?
Swords and Sandals 2
Un 2048 ca vous tente??
2048
Citer : Posté le 19/06/2013 18:53 | #
Ca s'est que t'a oublié soit un ";" dans un .h inclu dans le .c où il y a l'erreur, soit un "}" ou ")" dans le .c
Citer : Posté le 19/06/2013 19:36 | #
t'as oublier de fermer ton main (utilise notepad++ ou code blocks et ca ce voit tout de suite )
Ajouté le 19/06/2013 à 19:38 :
et aussi, pour afficher des images, tu peut utiliser ca pour genere un bitmap et cette fonction de fxlib ou celle de monochromeLib
Ajouté le 19/06/2013 à 19:46 :
je me suis trompé pour la fonction de fxlib, il faut utiliser celle la
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 19/06/2013 19:48 | #
Prend les fonctions de MonochromeLib, elles sont beaucoup plus rapides.
Citer : Posté le 20/06/2013 12:55 | #
Euh ca fonctionne comment SpriteCoder??? là j'avoue que je vois pas...
Sinon merci pour l'idée de notepad! je m'y connait en php/css/html et je l'utilise mais là j'y ait pas pensé
Je vais essayer la librairie monocromeLib. merci de l'idée!
Ajouté le 20/06/2013 à 12:57 :
J\'ai essayé SpriteCoder mais je vois pas trop l\'utilité... ca code plein de truc et je suis pas certain de savoir l\'utiliser!
Calcu: graph 35+ tweaké
Transformez votre graph 35+ SH4 en graph 75!
C'est par ici!
Etes vous un vrai trader???
Business
Saurez vous vaincre les puissances ennemis?
Swords and Sandals 2
Un 2048 ca vous tente??
2048
Citer : Posté le 20/06/2013 13:08 | #
en fait, tu lui donne une image, et il te donne un tableau qui represente l'image en bitmap.
je te conseille de regarder dans la doc de monochromeLib.
Ajouté le 20/06/2013 à 13:08 :
Un bitmap est un tableau de donnée dans lequel un bit représente un pixel.
Créer un bitmap 8*8
Un pixel étant soit noir soit blanc, on peut stocker son état dans un bit (0 ou 1). Un octet contient 8 bits, on peut donc y stocker 8 pixels. Pour un bitmap 8*8, chaque ligne va tenir dans un octet, on va donc avoir 8 octets, un par ligne.
Prenons un exemple, l\'image d\'une balle :
00111100 -> 60
01111110 -> 126
11111011 -> 251
11111101 -> 253
11111101 -> 253
11111111 -> 255
01111110 -> 126
00111100 -> 60
Ici, j\'ai pris les nombres binaires correspondant à chaque ligne de l\'image, et je les ai converti en décimal.
Nous obtenons donc le tableau suivant :
char balle[] = {60, 126, 251, 253, 253, 255, 126, 60};
Ce tableau est un bitmap 8*8 que l\'on peut envoyer aux fonctions ML_bmp pour le dessiner.
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 20/06/2013 13:22 | #
ok... je vais voir! en attendant j'essaie de comprendre pourquoi je peux pas cliquer sur "run" après avoir compilé le projet
Calcu: graph 35+ tweaké
Transformez votre graph 35+ SH4 en graph 75!
C'est par ici!
Etes vous un vrai trader???
Business
Saurez vous vaincre les puissances ennemis?
Swords and Sandals 2
Un 2048 ca vous tente??
2048
Citer : Posté le 20/06/2013 13:28 | #
est-ce que la compilation c'est terminée sans soucis?
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 20/06/2013 14:10 | #
oui sans problème! j'ai juste des erreurs de printmini
Tylor.c(828) : C1016 (W) Argument mismatch
Mais ca n'empèche pas la compilation
Sinon, pour les char, pour y ajouter du texte, c'est quoi la fonction? StrJoin?
Ajouté le 20/06/2013 à 14:11 :
Mes printmini ressemblent à ca:
Calcu: graph 35+ tweaké
Transformez votre graph 35+ SH4 en graph 75!
C'est par ici!
Etes vous un vrai trader???
Business
Saurez vous vaincre les puissances ennemis?
Swords and Sandals 2
Un 2048 ca vous tente??
2048
Citer : Posté le 20/06/2013 14:19 | #
Normalement tout est bon. T'as encore le problème ? Essaye de quitter le sdk et de le relancer, sinon faut créer un nouveau projet, le compiler, puis le lancer, et recharger ton projet en cours de devellopement
Citer : Posté le 20/06/2013 14:21 | #
Je le relance et je te dis ca!
Ajouté le 20/06/2013 à 14:24 :
ca marche! mais il tourne déjà il me semble et quand je clique sur stop pour recommencer du début, je ne plus cliquer sur rien!
Ajouté le 20/06/2013 à 14:27 :
non c\'est bon en fait! mais là il me fait un plantage en executant mon beau programme
Calcu: graph 35+ tweaké
Transformez votre graph 35+ SH4 en graph 75!
C'est par ici!
Etes vous un vrai trader???
Business
Saurez vous vaincre les puissances ennemis?
Swords and Sandals 2
Un 2048 ca vous tente??
2048
Citer : Posté le 20/06/2013 14:35 | #
pour ajouter du texte tu doit utilise strcat (dans string.h)
[brown]#include <string.h>[/brown]
void afficher()
{
[purple]char[/purple] str[80]={[gray]"ok"[/gray]};
strcat (str,[gray]"ca marche"[/gray]);
puts (str);
PrintMini(1,[maroon]1[/maroon],str,[maroon]1[/maroon]);
}
Ajouté le 20/06/2013 à 14:36 :
mea culpa, j\'ai laissé une instruction en trop, ne tiens pas compte du \"puts (str);\"
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !