**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 25/09/2012 21:23 | #
Comment on change la valeur maximal du générateur de nombre aléatoire ? (rien trouvé dans la doc...)
Parce que ça, ça ne marche pas
Edit: je suis débile, c'est juste au dessus je crois...
Citer : Posté le 25/09/2012 21:25 | #
ben tu fait rand () % MAX
ca te renverra un nombre entre 0 et MAX
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 25/09/2012 21:29 | #
Heu... J'ai pas compris xD
Citer : Posté le 25/09/2012 21:32 | #
ben rand() te renvoie un nombre enorme aleatoire,
% est le reste de la division, (5%2 = 1 ou 10%3 = 1)
et donc rand()%3 te donnera 0,1 ou 2
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 25/09/2012 21:38 | #
Ok ! Super merci !
Ça marche, mais a chaque fois que le programme se lance, c'est le même nombre qui apparait...
Cette fonction n'a pas l'air très aléatoire...
Citer : Posté le 25/09/2012 21:51 | #
fait srand(getTicks()) apres le menu (j'ai eu le meme probleme)
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 25/09/2012 21:59 | #
??? (désolé je fais le noob aujourd'hui )
Ça me met une erreur...
Citer : Posté le 25/09/2012 22:03 | #
t'a bien inclus stdil?
normalement srand(int seed) crée le premier aléatoire duquel découleront tous les aléatoire renvoyé par rand()
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 25/09/2012 22:06 | #
Oui, c'est inclus ("stdlib.h").
Et getTicks, ça sert a quoi ?
Citer : Posté le 25/09/2012 22:08 | #
ben ca renvoie le nombre de ticks (je pense 1/128 de seconde) qui s'est ecoulé depuis le debut du programme
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 25/09/2012 22:13 | #
Ok, ben je comprends pas...
regardes:
#include "MonochromeLib.h"
#include "stdio.h"
#include "stdlib.h"
int AddIn_main(int isAppli, unsigned short OptionNum){
unsigned int key;
int ret;
char affichage[21]; //chaine qui recoit ret
int gt = getTicks();
srand(gt);
ret=rand();
ret=ret%128;
sprintf(affichage,"ret%d",ret); //transformation ret(int) -> affichage(string)
PrintMini( 0, 0, affichage, MINI_OVER);
while(1){ GetKey(&key); }
return 1;
}
Citer : Posté le 25/09/2012 22:14 | #
il te met quoi comme erreur?
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 25/09/2012 22:18 | #
Ça:
Executing Hitachi SH C/C++ Compiler/Assembler phase
set SHC_INC=C:\Program Files\CASIO\fx-9860G SDK\OS\SH\include
set PATH=C:\Program Files\CASIO\fx-9860G SDK\OS\SH\bin
set SHC_LIB=C:\Program Files\CASIO\fx-9860G SDK\OS\SH\bin
set SHC_TMP=C:\Users\Getkey\Desktop\SDK\Fallen_Astronaut\Debug
"C:\Program Files\CASIO\fx-9860G SDK\OS\SH\bin\shc.exe" -subcommand=C:\Users\Getkey\AppData\Local\Temp\hmk150A.tmp
C:\Users\Getkey\Desktop\SDK\Fallen_Astronaut\Astrofal.c(17) : C1016 (W) Argument mismatch
Executing Hitachi OptLinker04 phase
"C:\Program Files\CASIO\fx-9860G SDK\OS\SH\bin\Optlnk.exe" -subcommand=C:\Users\Getkey\AppData\Local\Temp\hmk15B7.tmp
** L2310 (E) Undefined external symbol "_getTicks" referenced in "C:\Users\Getkey\Desktop\SDK\Fallen_Astronaut\Debug\Astrofal.obj"
Optimizing Linkage Editor Abort
HMAKE MAKE UTILITY Ver. 1.1
Copyright (C) Hitachi Micro Systems Europe Ltd. 1998
Copyright (C) Hitachi Ltd. 1998
ERROR: Process failed with return code: 1
Build was not successful.
Je reviens, j'eteint l'ordi...
Citer : Posté le 25/09/2012 22:20 | #
a ben oui, je vien de comprendre : getTicks n'est pas une fonction de base, je l'ai dans mon time.h
rajoute ca dans un fichier time.c (par exemple)
static int (*SysCall)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallCode;
int getTicks()
{
return (*SysCall)(0, 0, 0, 0, 0x3B);
}
normalement ca devrait marcher
PS : tu nous fait un jeu d'astronaute? cool
PS2 : initialise srand() apres un menu ou un temps qui depend de l'utilisateur (sinon ce sera toujours le meme hasard)
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 25/09/2012 22:32 | #
<=
Ajouté le 25/09/2012 à 22:42 :
Omg un epic bug, j\'avais tout écrit, ca ma tout remplacé par un caractère...
Bon je recommence (dsl je double post du coup mais je suis pas sur l\'ordi, là et ça bug a mort --\')
Ok merci beaucoup, j\'irais tester demain
(t\'a trouvé ça ou ?)
Oui, ce seras un jeu ou un astronaute sera en chute libre et devras éviter des astéroïdes. (mais ca ressembleras pas du tout a celui de Louloux (quand j\'ai eu l\'idée j\'avais même pas vu son jeu) parce qu\'il y auras un objet très spécial, je n\'en dit pas plus , surprise)
P.S2: oui, il faut le faire a chaque utilisation du hasard même, non ?
Citer : Posté le 25/09/2012 22:49 | #
non, il faut juste initialisé apres un menu ou un moment dont le temps d'execution change a chaque fois. tu peux regarder au-dessus, le lien de ziqumu/nitrosax te donnera une idée de comment ca fonctionne)
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 25/09/2012 23:00 | #
Ok, let's go !
*se concentre pour comprendre*
Citer : Posté le 26/09/2012 02:09 | #
rand et srand sont des fonctions standard. Il y a donc des centaines de docs et de tutos sur le net.
Citer : Posté le 26/09/2012 14:06 | #
Oui, ce seras un jeu ou un astronaute sera en chute libre et devras éviter des astéroïdes.
Bienvenue dans le club
Citer : Posté le 26/09/2012 14:10 | #
Je sais, on l'utilise dans le tuto de Mathéo21 sur le C, mais le problème c'est que la ça renvoi toujours le même nombre (pourquoi ça le fait pas sur l'ordi ?), mais grâce a Dodormeur, j'ai compris comment faire varier
Ajouté le 26/09/2012 à 14:28 :
Oui, ce seras un jeu ou un astronaute sera en chute libre et devras éviter des astéroïdes.
Bienvenue dans le club
T\'inquiète, il y auras un truc un peu différent
Ajouté le 30/09/2012 à 17:31 :
Je me demandais...
Quel GetKey est le plus adapté ? (niveau compatibilité, rapiditée, etc...)
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 !