Nombre de visites sur cette page : 63119 Score au progrank : 86 Note actuelle : 9.03/10 noté 7 fois Vous devez être connecté(e) pour noter (inscription).
Appuyez sur les touches pour voler. Sont utilisables toutes les touches de [XTT] à [EXE] ainsi que [SHIFT], [ALPHA] et [F1].
Si vous n'arrivez pas à quitter avec [MENU] ou [EXIT], essayez la combinaison de touches [TAN] -> [EXIT].
Cela viens probablement des fonctions de lecture/écriture des fichiers de Casio.
Fichier 1 : Jeu compatible SH4
Fichier 2 : Sources avant le changement de la gravité
Fichier 3 : Jeu non-compatible SH4
Utilise TouchLib de Dark Storm et MonochromeLib de PierrotLL
Donc heu j'ai téléchargé ce jeu, je l'ai lancé, il marche, sauf que je ne peux absolument pas quitter. Absolument aucune touche ne marche, même exit, AC, menu, tan+exit, tan+menu... Je ne pouvais absolument rien faire, je ne pouvais pas aller dans le menu pour supprimer le programme, ni connecter ma casio à mon pc parce qu'elle est pas en mode pour recevoir des données. Donc du coup j'ai enlevé les piles, je les remets, c'est toujours bloqué sur flappy bird, je ne peux pas l'éteindre autrement, donc je l'ai laissée allumée, 2 h plus tard je la sors, j'enlève les piles et là ça marche, je sais absolument pas ce que j'ai fait.
Ce jeu est bien mais faut absolument corriger ce bug, j'ai failli ne plus pouvoir me servir de ma calculette.
if (nb == 0)
{
ML_bmp_and_cl(nombresNeg[0], 127 - y, x, 7, 6);
ML_bmp_or(nombres[0], 127 - y, x, 7, 6);
}
while(nb)
{
tmp = nb % 10;
nb = (int)nb / 10;
chiffres[i] = tmp;
i++;
}
for(i = i-1; i>=0; i--)
{
ML_bmp_and_cl(nombresNeg[chiffres[i]], 127 - y, x + j*7, 7, 6);
ML_bmp_or(nombres[chiffres[i]], 127 - y, x + j*7, 7, 6);
j++;
}
}
Ce serais pour faire un rider
Et si tu veux bien, est-ce que la fonction dépends des images bitmap qui sont aussi dans les sources ?
Je n'ai jamais utilisé les fonctions ML_bmp donc je ne sais pas trop ce qu'elles font.
Dans la théorie, oui tu peux réutiliser (c'est du CC-By-Sa).
Dans la pratique aujourd'hui il est plus simple, plus pratique et plus propre d'utiliser les fonctions de Gint.
Voici la fonction commentée pour que tu puisse refaire à peu près pareil avec Gint. Poke @Lephenixnoir pour les subtilités genre spritesheet.
Au passage, étant donné que le jeu est orienté d'un quart de tour dans le sens horaire, les coordonnées du jeu (x, y) ∈ [[0, 63]]×[[0, 127]] se retrouvent donc réellement à l'écran en (127 - y, x), d'où les formules dans les ML_bmp_*
Et le TL;DR de ML_bmp_or(char *sprite, int x, int y, int h, int l) avec :
– sprite : le fameux tableau de char
– x, y : la position à l'écran du sprite
– h, l : la hauteur et la largeur du sprite
void printInt(int x, int y, int nb)
{ // Définition des images de chiffres (tableaux de char, pour MonochromeLib) // Pour gérer la transparence, il faut un masque OR, et un masque AND, d'où les neg // Cf la doc fournie avec MonochromeLib dans le zip : https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=86
static const unsigned char nb0[] = {0xFE, 0x82, 0xBA, 0xBA, 0x82, 0xFE};
static const unsigned char nb1[] = {0x00, 0x0E, 0xFA, 0x82, 0xFE, 0x00};
...
static const unsigned char neg9[] = {0xFE, 0xFA, 0xFA, 0xFA, 0x82, 0xFE};
// On fout tout ça dans un tableau de pointeurs, parce que ce sera plus simple à manipuler
unsigned char* nombres[10] = {nb0, nb1, nb2, nb3, nb4, nb5, nb6, nb7, nb8, nb9};
unsigned char* nombresNeg[10] = {nb0, neg1, nb2, nb3, neg4, nb5, nb6, neg7, nb8, nb9};
// On déclare quelques variables
int i = 0, j = 0;
int tmp;
int chiffres[8];
// Cas trivial, le nombre est nul, on affiche 0 au bon endroit
if (nb == 0)
{
ML_bmp_and_cl(nombresNeg[0], 127 - y, x, 7, 6);
ML_bmp_or(nombres[0], 127 - y, x, 7, 6);
}
// Boucle qui prend un entier strictement positif en entrée (nb) et remplit un tableau avec des chiffres, à l'envers // Exemple : 314159 → {9, 5, 1, 4, 3, 1};
while(nb)
{
tmp = nb % 10;
nb = (int)nb / 10;
chiffres[i] = tmp;
i++;
}
// Pour chaque chiffre ainsi décomposé, en commençant par celui de poids fort, on l'affiche // La police étant une police de taille fixe, on sait que le caractère suivant se trouve à 7 px à coté de l'autre, d'où le ×7.
for(i = i-1; i>=0; i--)
{
ML_bmp_and_cl(nombresNeg[chiffres[i]], 127 - y, x + j*7, 7, 6);
ML_bmp_or(nombres[chiffres[i]], 127 - y, x + j*7, 7, 6);
j++;
}
}
Concrètement pour passer à Gint, tu utilise les fonctions de dessins de sprite qui vont bien, et tu remets les coordonnées dans le bon repère.
Et je laisse Lephe pour le reste
Tu crées une seule image avec les dix chiffres de 0 à 9, que tu passes à fxconv avec charset:numeric. Et ensuite tu affiches avec les bonnes fonctions pour print. Ça donne un truc comme ça :
#include <gint/display.h>
void printInt(int x, int y, int nb)
{
extern font_t font_mydigits;
font_t *oldfont = dfont(&font_mydigits);
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd