**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 30/09/2012 17:40 | #
c'est a dire ? niveau des input tu veux dire?
IsKeyDown est tres efficace, mais cause un petit ralentissement (avec un Sleep de 50 par frame on ne voit plus rien) mais incompatible SH4
GetKey est bloquant, donc inutilisable pour des jeux d'action, mais posibilité de quitter n'importe quand, de regler le contraste,etc...
GetKeyWait ne marche pas, mais un syscall l'imite (si j'ai bien tout compris) et ferai la meme chose que GetKey, mais en se debloquant apres un nombre de milliseconde defini
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 30/09/2012 18:01 | #
Le best of, c'est "keyDown" (la plus rapide, légère... mais malheureusement pas compatible SH4 ) de PierrotLL. On la trouve dans le sources de Gravity Duck.
Citer : Posté le 30/09/2012 21:55 | #
GetKey est bloquant, donc inutilisable pour des jeux d'action
Ok merci, moi j'ai utilisé IsKeyDown.
Le best of, c'est "keyDown" (la plus rapide, légère... mais malheureusement pas compatible SH4 ) de PierrotLL. On la trouve dans le sources de Gravity Duck.
Citer : Posté le 30/09/2012 22:29 | #
ben si quelqu'un veut faire une adaption de fire emblem, il pourra utiliser GetKey pour le rendre compatible
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 27/10/2012 16:23 | #
j'ai un problème avec le SDK, je ne peux plus modifier mon jeu Test Andropov car quand je fais des changement, le SDK s'en fout, si j'efface tout ce qui est écrit et bien quand je fait F5 ils continuent a faire tourner l'ancien jeu dans le simulateur. C'est assez enervant car a ce rythme la je ne pourrais pas faire la MAJ tant attendue
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Citer : Posté le 27/10/2012 17:37 | #
Essai de passer par un editeur externe (notepad++)
Et sinon essai les option de faire Project>Reload. Ou encore Projet>Rebuild All, même si normalement ça devrait pas coser ce genre de problème.
Citer : Posté le 27/10/2012 18:56 | #
ok j'essaierai
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Citer : Posté le 27/10/2012 21:13 | #
t'es sur de moifier les bons fichiers ? parce que j'ai déjà fait la boulette (copie sur une clé USB )
Citer : Posté le 23/02/2013 17:32 | #
Salut, débutant avec le SDK de casio je galère un peu, mais y a-t-il un émulateur sur ce SDK?
Projet de combat au tour par tour type DOFUS mais totalement orienté sur le PvP. Le projet va demander un peu de temps mais soyons patient...
Le titre (laby3D) en dit long sur son contenu : il s'agit d'un simple moteur de labyrinthe en "3D" (enfin on va dire juste un effet de profondeur ). il aura la particularité d'être aggrémenté de superbes petites animations sur les rotations d'angles de vue ! j'y bosse pas mal et j'espère bien le réussir !
Le jeu devrait sortir bientôt
Citer : Posté le 23/02/2013 17:56 | #
Oui, mais l'émulateur ne gère pas les niveaux de gris si je me souviens bien.
Pour émuler le programme compilé, va dans l'onglet "Run" puis clique sur "Run", si l'émulateur ne s'est pas ouverte alors va dans l'onglet "View" puis clique sur "Display" et "Keyboard".
Citer : Posté le 23/02/2013 19:03 | #
Le best of, c'est "keyDown" (la plus rapide, légère... mais malheureusement pas compatible SH4 ) de PierrotLL. On la trouve dans le sources de Gravity Duck.
Regardez la replacement de IsKeyDown (par example à casiopeia), et vous pouvez voir qu'il ya KeyDown (CheckKeyRow) dans la source pour les SH3 et Keydown (nouveau function) pour les SH4. Keydown est comme vite que CheckKeyRow.
Rendre GravityDuck compatible est facile, j'ai essayé (J'adore ce jeu ).
Pour la future: Est ce-que vous pouvez choses comme ca dans le topic «Rendre un addin compatible SH4»? Trouver ces problèmes dans les forums est difficile.
Citer : Posté le 14/03/2013 20:38 | #
ouai sa serait cool un gravity duck compatible SH4
Projet de combat au tour par tour type DOFUS mais totalement orienté sur le PvP. Le projet va demander un peu de temps mais soyons patient...
Le titre (laby3D) en dit long sur son contenu : il s'agit d'un simple moteur de labyrinthe en "3D" (enfin on va dire juste un effet de profondeur ). il aura la particularité d'être aggrémenté de superbes petites animations sur les rotations d'angles de vue ! j'y bosse pas mal et j'espère bien le réussir !
Le jeu devrait sortir bientôt
Citer : Posté le 15/03/2013 16:14 | # | Fichier joint
Changes made by me.
Original taken by PierrotLL.
Citer : Posté le 20/04/2013 21:24 | #
Excusez moi je débute sur le SDK, et j'ai un petit soucis, comment faire pour afficher une variable ?
J'ai fait ça mais rien ne s'affiche
{
unsigned int key;
unsigned int nombre;
nombre = 50;
Bdisp_AllClr_DDVRAM();
locate(4,1);
Print((unsigned char*)"Plus ou moins");
locate(3,3);
Print((unsigned char*)"Appuie sur EXE");
while(IsKeyDown(KEY_CTRL_EXE)==0){
GetKey(&key);
}
Bdisp_AllClr_DDVRAM();
locate(1,1);
Print((unsigned char*)"Fleches pour choisir");
locate(8,3);
Print((unsigned char*)"< >");
while(1){
GetKey(&key);
if (key == KEY_CTRL_LEFT) {
nombre -= 1;
}
if (key == KEY_CTRL_RIGHT) {
nombre += 1;
}
locate(7,4);
Print(&key); <--- ICI
Bdisp_PutDisp_DD();
}
return 1;
}
Citer : Posté le 20/04/2013 21:33 | #
la fonction print ne peut pas afficher de variable, seulement des chaines de caracteres
utilise cette fonction :
{
int i, length=0;
char str[12] = \"0\";
if(variable)
{
if(variable<0)
{
length++;
str[0] = \'-\';
variable = -variable;
}
for(i=variable ; i ; i/=10) length++;
str[length] = 0;
for( ; variable ; variable/=10) str[--length] = variable%10+\'0\';
}
Print(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 !Citer : Posté le 22/04/2013 18:06 | #
Merci
Mais j'ai deux erreurs avec ton code
{
int i, length=0;
char str[12] = \"0\";
if(variable)
{
if(variable<0)
{
length++;
str[0] = \'-\';
variable = -variable;
}
for(i=variable ; i ; i/=10) length++;
str[length] = 0;
for( ; variable ; variable/=10) str[--length] = variable%10+\'0\';
}
Print(str); <------------------ Argument mismatch
}
Citer : Posté le 22/04/2013 19:10 | #
t'as déclaré ta fonction avant de l'utiliser ?
Citer : Posté le 23/04/2013 19:34 | #
tu l'a bien mis entre les includes et le main?
donne un peu ton code, pour voir ce qui cloche
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 23/04/2013 21:01 | #
Désolé Dark Storm, j'avais pas vu ton message.
J'ai mis le code à la suite
//****************************************************************************
// AddIn_main (Sample program main function)
//
// param : isAppli : 1 = This application is launched by MAIN MENU.
// : 0 = This application is launched by a strip in eACT application.
//
// OptionNum : Strip number (0~3)
// (This parameter is only used when isAppli parameter is 0.)
//
// retval : 1 = No error / 0 = Error
//
//****************************************************************************
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
int nombre;
nombre = 50;
Bdisp_AllClr_DDVRAM();
locate(4,1);
Print((unsigned char*)"Plus ou moins");
locate(3,3);
Print((unsigned char*)"Appuie sur EXE");
while(IsKeyDown(KEY_CTRL_EXE)==0){
GetKey(&key);
}
Bdisp_AllClr_DDVRAM();
locate(1,1);
Print((unsigned char*)"Fleches pour choisir");
locate(8,3);
Print((unsigned char*)"< >");
while(1){
GetKey(&key);
if (key == KEY_CTRL_LEFT) {
nombre -= 1;
}
if (key == KEY_CTRL_RIGHT) {
nombre += 1;
}
locate(7,4);
PrintV(nombre);
Bdisp_PutDisp_DD();
}
return 1;
}
void PrintV( int variable)
{
int i, length=0;
char str[12] = "0";
if (variable)
{
if (variable<0)
{
length++;
str[0] = '-';
variable = -variable;
}
for (i=variable ; i ; i/=10) length++;
str[length] = 0;
for ( ; variable ; variable/=10) str[--length] = variable%10+'0';
}
Print(str);
}
//****************************************************************************
//************** ****************
//************** Notice! ****************
//************** ****************
//************** Please do not change the following source. ****************
//************** ****************
//****************************************************************************
#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
//****************************************************************************
// InitializeSystem
//
// param : isAppli : 1 = Application / 0 = eActivity
// OptionNum : Option Number (only eActivity)
//
// retval : 1 = No error / 0 = Error
//
//****************************************************************************
int InitializeSystem(int isAppli, unsigned short OptionNum)
{
return INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}
#pragma section
Je me rappel d'une histoire avec les headers où fallait mettre le nom de la fonction, ça se passe comment sur le SDK
Citer : Posté le 23/04/2013 21:22 | #
il te faut mettre la fonction avant le main pour pouvoir l'utiliser
void PrintV( int variable)
{
int i, length=0;
char str[12] = "0";
if (variable)
{
if (variable<0)
{
length++;
str[0] = '-';
variable = -variable;
}
for (i=variable ; i ; i/=10) length++;
str[length] = 0;
for ( ; variable ; variable/=10) str[--length] = variable%10+'0';
}
Print(str);
}
//****************************************************************************
// AddIn_main (Sample program main function)
//
// param : isAppli : 1 = This application is launched by MAIN MENU.
// : 0 = This application is launched by a strip in eACT application.
//
// OptionNum : Strip number (0~3)
// (This parameter is only used when isAppli parameter is 0.)
//
// retval : 1 = No error / 0 = Error
//
//****************************************************************************
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
int nombre;
nombre = 50;
Bdisp_AllClr_DDVRAM();
locate(4,1);
Print((unsigned char*)"Plus ou moins");
locate(3,3);
Print((unsigned char*)"Appuie sur EXE");
while(IsKeyDown(KEY_CTRL_EXE)==0){
GetKey(&key);
}
Bdisp_AllClr_DDVRAM();
locate(1,1);
Print((unsigned char*)"Fleches pour choisir");
locate(8,3);
Print((unsigned char*)"< >");
while(1){
GetKey(&key);
if (key == KEY_CTRL_LEFT) {
nombre -= 1;
}
if (key == KEY_CTRL_RIGHT) {
nombre += 1;
}
locate(7,4);
PrintV(nombre);
Bdisp_PutDisp_DD();
}
return 1;
}
//****************************************************************************
//************** ****************
//************** Notice! ****************
//************** ****************
//************** Please do not change the following source. ****************
//************** ****************
//****************************************************************************
#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
//****************************************************************************
// InitializeSystem
//
// param : isAppli : 1 = Application / 0 = eActivity
// OptionNum : Option Number (only eActivity)
//
// retval : 1 = No error / 0 = Error
//
//****************************************************************************
int InitializeSystem(int isAppli, unsigned short OptionNum)
{
return INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}
#pragma section
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 23/04/2013 21:33 | #
Ok merci beaucoup
Par contre tu pourrais me préciser quand même pour l'histoire des headers stp.