[bibliotheque C]usefull.h : plein de fonctions utiles !
Posté le 04/09/2014 20:04
Bonjour à tous !
Ne vous est-il jamais arrivé de vous dire, en commençant un projet en C(++), qu'il vous manquait plein de fonctions, que vous devrez piocher a droite a gauche, inclure 14 libraires externes pour 2 fonctions simples, pour un total d'une heure de boulot inutile?
Et bien maintenant, vous n'aurez plus a faire cela, grâce a usefull, une bibliothèque qui contient toutes les fonctions hyper-utilisée dans les jeux !
voici une liste de toutes les fonctions :
unsigned char key_down(unsigned char code); // fonction plus rapide et compatible SH4 de IsKeyDown()
int time_getTicks(); //renvoye le nombre de ticks (1/128 de seconde) depuis minuit selon le processeur de la calto
int getFps(); //renvoye le nombre de FPS
void setFps(int fpsWish); //regle le nombre de fps : 1 pour 128 FPS,2 pour 64, 4 pour 32, 5 pour 25 => 128/fpsWish
void PrintV(int X,int Y , int variable); // affiche un nombre en X et Y en pixels
int max(int a,int b); //renvoye le max
int writeFile(unsigned char* name,unsigned char* extension,unsigned char* source,int taille);
/*
fonction de sauvegarde
ecrit taille octets du tableau source dans le fichier name.extension
Pour ecrire un tableau d'int, castez simplement le tableau (unsigned char*)tableauDInt
Pour ecrire un int simple, faites writeFile(name,extension,(unsigned char*)&variable,4);
*/
int readFile(unsigned char* name,unsigned char* extension,unsigned char* reception);
/*
fonction de chargement de sauvegarde
ecrit le contenu du fichier name.extension dans le tableau reception
pour lui passer un tableau d'int, castez simplement le tableau (unsigned char*)tableauDInt
Pour ecrire dans un int simple, faites writeFile(name,extension,(unsigned char*)&variable); mais faites attention a ce que le fichier ne soit pas >4 octets
*/
Avec toutes ces fonctions très utiles, vous pourrez démarrer un projet sans avoir a recoder des choses que vous connaissez par cœur !
PS : je tiens également a préciser que je suis l'auteur de toutes ces fonctions (sauf PrintV, qui est la propriété de PierrotLL et key_down qui est l’œuvre de casimo), mais comme la bibliothèque existe depuis longtemps sans que je prenne le temps de la partager, certaines fonctions se sont répandues dans divers tutoriels
PS2 : Si vous l'utilisez dans un projet, vous n’êtes pas obligé de me créditer, ne vous inquiétez pas de ce coté la
Fichier joint
Citer : Posté le 30/01/2016 13:43 | #
Si les include sont placés de manière fortuite (notamment fxlib d'abord), le compilateur pour trouver les symboles par magie...
Citer : Posté le 30/01/2016 13:45 | #
Heu c'est à dire ?
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 30/01/2016 13:47 | #
Par exemple pour les headers, si tu utilises usefull.h qui nécessite des déclarations fxlib.h mais qui ne l'inclut pas, tu peux penser que ça va planter. Mais si par hasard dans ton fichier source tu inclus fxlib.h juste avant usefull.h... ben ça va marcher. Parce que le préprocesseur contient quelques artifices qui font que l'inclusion c'est littéral, il copie les contenus ; et pas une vraie gestion de fichiers.
Citer : Posté le 30/01/2016 14:15 | #
Ah bah oui fxlib est inclue dans MonochromeLib.c, qui est avant usefull.c .
Bon bah merci de l'info .
Ajouté le 30/01/2016 à 18:50 :
Hum , la touche AC/ON n'est pas gérée chez moi .
Ajouté le 30/01/2016 à 18:53 :
Oh God ... je me traîne une version comme ça depuis 2 ans...
Du coup faudrait modifier les defines dans le fichier en DL.
Ajouté le 30/01/2016 à 19:00 :
Mais !! ça fonctionne toujours pas !
Ajouté le 30/01/2016 à 21:52 :
Dodormeur si tu passes par ici, ou sinon quelqu'un qui arrive à faire fonctionner la touche AC/ON, je veux bien qu'il m'aide .
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 30/01/2016 22:52 | #
Tu peux pas programmer un add-in qui affiche la valeur de la touche pressée pour trouver le code de AC/ON ?
Après je sais que cette touche a un traitement un peu spécial parce qu'elle est complètement en-dehors de la matrice du clavier, elle est toute seule sur une ligne tout en bas.
Citer : Posté le 31/01/2016 09:37 | #
J'ai inclus fxlib dans usefull.c
Ca à réduit le nombre d'erreur mais ça ne veut toujours pas build
I:\Programmation\Moteur de déplacement d'un personnage\usefull.c(26) : C1016 (W) Argument mismatch
I:\Programmation\Moteur de déplacement d'un personnage\usefull.c(26) : C1016 (W) Argument mismatch
I:\Programmation\Moteur de déplacement d'un personnage\usefull.c(26) : C1016 (W) Argument mismatch
I:\Programmation\Moteur de déplacement d'un personnage\usefull.c(157) : C1016 (W) Argument mismatch
I:\Programmation\Moteur de déplacement d'un personnage\usefull.c(157) : C2202 (E) Number of parameters mismatch
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 31/01/2016 09:38 | #
Rajoute 0 en argument après str dans l'appel à PrintMini().
Citer : Posté le 31/01/2016 09:43 | # | Fichier joint
Il ne reste plus que les argument mismatch mais il m'indique ça maintenant
** L2300 (E) Duplicate symbol "_OSVersionAsInt" in "I:\Programmation\Moteur de déplacement d'un personnage\Debug\moteur de dp perso.obj"
code en fichier joint
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 31/01/2016 09:45 | #
La fonction OsVersionAsInt() est définie dans usefull.c, mais tu dois l'avoir à un autre endroit en même temps.
Remplace la définition de la fonction par un prototype dans l'un des deux fichiers, ou bien passe les fonctions en static.
Citer : Posté le 31/01/2016 09:49 | #
Dès que je passe en static, j'ai le même soucis avec une autre fonction
Ajouté le 31/01/2016 à 09:50 :
Ca me la refait avec const unsigned int sc0015[] = {SCA, SCB, SCE, 0x15};
J'ai mis un static devant et c'est enfin bon \o/ !
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 31/01/2016 10:03 | #
Il n'y avait pas que la fonction OsVersionAsInt() qui était concernée visiblement Pour rappel, un symbole static n'est accessible que depuis le fichier dans lequel il est défini, ce qui évite les problèmes de conflit
Citer : Posté le 31/01/2016 20:41 | #
Justement Lephé, c'est ce que j'ai fais, mais il faut croire que key_down(34) ne fonctionne pas , pourtant avec la librairie input de ninestar il me semble qu'elle fonctionne ...
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 04/02/2016 11:04 | #
AC/ON a toujours un traitement spécial à la base mais à plus haut niveau il n'y a pas de raison que ça ne fonctionne pas... désolé, sans tester plus je ne vois pas d'où ça peut venir.
Citer : Posté le 04/02/2016 11:21 | #
pourtant avec la librairie input de ninestar il me semble qu'elle fonctionne
Citer : Posté le 04/02/2016 14:35 | #
Ah oui j'ai confondu avec [F1] ...
Bon ben dommage .
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 04/02/2016 15:32 | #
Merci c'est super pratique pour coder !!!
- Mystery Key
- Khi2