**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 06/07/2015 17:53 | #
Les premières erreurs sont dues au fait que tu as ajouté un fichier dans la liste des headers alors qu'il ne faut pas.
La dernière, en effet, est liée au fait que le SDK est installé dans un dossier dont le chemin est syntaxiquement incorrect du point de vue du compilateur/linker/outil quelconque.
Citer : Posté le 06/07/2015 17:55 | #
D'ailleurs tout ça est écrit dans le topic des erreurs de compilation.
Citer : Posté le 06/07/2015 17:56 | #
Il n'aime pas les parenthèses
Citer : Posté le 06/07/2015 17:57 | #
Oula oula , j'comprend pas parce que j'ai juste récupéré mes sources sur disque dur externe puis je les ai remises sur l'ordi sans rien toucher ...
Mais du coup vous me proposez quoi comme soluce pour le truc du chemin ?
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 06/07/2015 17:58 | #
Réinstalle-le dans un chemin sans parenthèses.
Citer : Posté le 06/07/2015 18:01 | #
Je l'ai déplacé dans un autres dossier mais quand je lance le SDK avec l'iconne sur le bureau ça me le réinstalle dans le dossier avec la parenthèse ...
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 06/07/2015 18:02 | #
Le SDK n'aime pas ça : Program Files (x86)
Ajouté le 06/07/2015 à 18:03 :
Ben déplace-le à la main, ça marche d'habitude.
Citer : Posté le 06/07/2015 18:05 | #
Ben justement, en le coupant puis collant, quand je le lance, il se recrée dans le dossier "Program Files (x86)"
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 06/07/2015 18:06 | #
Modifie ton raccourci de bureau ! Si tu ne le changes pas, ça ne peut pas fonctionner !
Citer : Posté le 06/07/2015 18:10 | #
Il veut toujours pas rester la où je le place !
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 06/07/2015 18:13 | #
Désinstalle-le et réinstalle-le... il n'y a pas de solution miracle.
Citer : Posté le 06/07/2015 18:26 | #
Oooookaaaay !
Merci les gars !
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 06/07/2015 18:44 | #
Chez moi le SDK marche très bien malgré un déplacement forcé. D'ailleurs j'avais bien fait attention au dossier d'installation, et ben ça me l'avait quand même mis dans Program Files (x86)…
Bref.
Citer : Posté le 01/09/2015 10:45 | #
Yo les gens, j'aimerais que cette fonction fonctionne
ML_bmp_or_cl(MenuMort,X,Y,85,64); //Dessin du menu de mort
ML_bmp_and_cl(MenuMort,X,Y,85,64);
ML_bmp_or(ImageModeJeu[ModeJeu],X+76,Y+5,5,27); //Nom du mode de jeu
AffichageNombre(Record[ModeJeu],Chiffres,X+75,Y+44,1,1); //Record
AffichageNombrePetits(Etage,ChiffresPetits,X+66,Y+55,1,2); //Nombre d'étage
AffichageNombrePetits(NombreBoulesAttrape[0],ChiffresPetits,X+60,Y+5,2,0); //Nombre boules +2
AffichageNombrePetits(NombreBoulesAttrape[0]*2,ChiffresPetits,X+60,Y+55,1,2); //Points boules +2
AffichageNombrePetits(NombreBoulesAttrape[1],ChiffresPetits,X+54,Y+5,2,0); //Nombre boules +5
AffichageNombrePetits(NombreBoulesAttrape[1]*5,ChiffresPetits,X+54,Y+55,1,2); //Points boules +5
AffichageNombrePetits(NombreBoulesAttrape[2],ChiffresPetits,X+48,Y+5,2,0); //Nombre boules +30
AffichageNombrePetits(NombreBoulesAttrape[2]*30,ChiffresPetits,X+48,Y+55,1,2); //Points boules +30
AffichageNombrePetits(NombreBlocsCasses+NombreBlocsExploses,ChiffresPetits,X+42,Y+5,2,0); //Nombre blocs cassés + explosé
AffichageNombrePetits((NombreBlocsCasses+NombreBlocsExploses)*3,ChiffresPetits,X+42,Y+55,1,2); //Points blocs cassés
AffichageNombrePetits(PointsDoubles,ChiffresPetits,X+36,Y+55,1,2); //Points doublés
AffichageNombrePetits(PointsPerdu,ChiffresPetits,X+30,Y+55,1,2); //Points perdus
AffichageNombrePetits(Score,ChiffresPetits,X+22,Y+55,1,2); //Score
ML_bmp_or_cl(Personnage[4+NumeroPersonnage*9],X+22,Y+5,7,7); //Personnage
}
J'espère qu'il y a plus simple que de devoir rentrer TOUTES les informations de la partie en argument ...
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 01/09/2015 11:17 | #
A vue de pied, un truc comme ca devrait marcher :
void DessinMenuMort(int X, int Y,int* args){
ML_bmp_or_cl(MenuMort,X,Y,85,64);
ML_bmp_and_cl(MenuMort,X,Y,85,64);
ML_bmp_or(ImageModeJeu[ModeJeu],X+76,Y+5,5,27);
AffichageNombre(Record[ModeJeu],Chiffres,X+75,Y+44,1,1);
AffichageNombrePetits(Etage,ChiffresPetits,X+66,Y+55,1,2);
for(int i = 0;i<x;i++)
AffichageNombrePetits(args[i],ChiffresPetits,X+60-i>>1)*6,Y+5+50*(i&1),2-(i&1),2*(i&1));
}
Avec x le nombre d'arguments a afficher
(j'ai fait ca un peu a l'arrache, a toi de modifier et d'arranger ce qu'il te faut )
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 01/09/2015 13:39 | #
Bon alors j'ai pas trop compris ce que tu m'as montré Dodo, mais en gros t'as juste réduit la taille de la fonction en simplifiant nan ?
Mais moi mon problème c'est que ça m'affichait dans le Build :
Undeclared name "MenuMort"
Cannot convert parameter "1"
etc...
Mais ça je crois l'avoir résolu en rajoutant ça pour chaque variable non déclarée :
char *MenuMort;
etc...
Car ce sont des sprites déclaré en hexadécimal.
Mais ! ça compile, mais ça plante lors de l'exécution de la fonction (SYSTEM ERROR etc...) ...
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 01/09/2015 14:01 | #
En même temps, si tu dis pas pourquoi t'as besoin d'aide, on peut pas faire grand chose
En l’occurrence, il faut que MenuMort (et tout le reste) soit déclaré quelque part (j’imaginai en global, ce qui est pas très propre quand même )
et juste les déclarer en début de fonction sans les initialiser ne marche pas, faut vraiment que tu les déclare ET les initialise quelque part. Faut que tu donnes un peu plus de contexte si tu veux qu'on t'aide bien
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 01/09/2015 14:07 | #
Il sont déclaré juste après :
int AddIn_main(int isAppli, unsigned short OptionNum){
Comme je fais d'habitude pour déclaré mes sprites.
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 01/09/2015 14:16 | #
Mais... Si tu les déclares a l'intérieur d'une fonction, tu peux pas y accéder en dehors de cette fonction (a moins de les passer en argument, mais bon, c'est lourd quand même...)
Donc soit tu les déclares en dehors de la fonction (global), soit tu les déclares dans la fonction qui les utilise
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 01/09/2015 18:30 | #
Okaaay, en global c'est avant la fonction Main ?
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 05/09/2015 19:20 | #
Oh non, pas en global.
Tu passes la variable en argument. Pourquoi s'embêter ?