Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Problème addin
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Problème addin

Posté le 09/12/2013 13:45

voila, je suis en train de préparer quelques graphisme pour mon prochain jeu et il y a un problème. mon programme peut afficher des lignes mais dès que je mets un GetKeyWait, mon écran est blanc. Comment faire pour que les traits restent pendant que le GetKeyWait fonctionne?

PS, mon programme est en fichier joint

Fichier joint


Précédente 1, 2, 3 ··· 5, 6, 7, 8, 9, 10, 11 ··· 18, 19, 20 Suivante
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 12:01 | #


Déjà pour un caractère, il faut mettre des 'a' et non "a" :

'a' = 0x61
"a" = pointeur sur un tableau {'a', '\0'}
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 25/01/2014 12:03 | #


Mais en fait c'est tout con l'erreur, rajoute un & devant le buffer(curseur)
Faut lui envoyer l’adresse, pas le caractère
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 12:03 | #


Quelques rappels sur les chaines de caractères => http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-c/les-chaines-de-caracteres
Je suis en train de me rafraichir la mémoire
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 25/01/2014 12:04 | #


@dark : faut envoyer une chaine de caractère pour le deuxième argument
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 12:09 | #


ben non :
buffer[curseur] contient la valeur ASCII du caractère voulu. ';' est la valeur ASCII du caractère ;

donc théoriquement buffer[curseur] == ';' est correct...
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 25/01/2014 12:15 | #


J'ai l'impression qu'on parle pas de la même chose en fait....
Tu parles de quelle partie du code?
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 12:21 | #


du if(buffer[curseur] == ';' || buffer[curseur] == '\n')
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 25/01/2014 12:52 | #


Ah d'accord! Moi je parlais du if(strcmp(buffer[curseur],";")==0 || strcmp(buffer[curseur],"\n")==0)
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/01/2014 16:10 | #


je repris mon code pour percer le problème
void loadingbuffercarte(int* stockage)
{
    int recuphandle=0;
    char searchmark[4]={0,0,0,0};
    char searchvirgule[1]={0};
    int curseur=0;
    char savebuffer[30];
    int savepos=0;
    int saveID=0;
    int autreX=11;
    int i=0;

    FONTCHARACTER PathName[]={'\\','\\','f','l','s','0','\\','M','O','N','S','T','R','E','S','.','c','s','v',0};
    recuphandle=Bfile_OpenFile(PathName,_OPENMODE_READ);
    
    Bdisp_AllClr_DDVRAM();

    memset(stockage,0,sizeof(stockage));
    PopUpWin(5);
    ML_rectangle(11,20,115,30,1,ML_BLACK,ML_TRANSPARENT);
    Bdisp_PutDisp_DD();
    
    while(saveID!=104){
//on lit cherche [ID]
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            Bfile_ReadFile(recuphandle,searchvirgule,1,curseur);
            curseur++;
            if(strcmp(searchvirgule,";")==0){savepos =curseur+3;}
        }while(strcmp(searchmark,"[ID]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit l'ID
        saveID=char2int(savebuffer);
        PrintV(10,10,saveID);
        Bdisp_PutDisp_DD();
        Sleep(2000);
        
        memset(savebuffer,0,sizeof(savebuffer));
//on cherche [NO]
        curseur +=4;
        savepos =curseur;
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            curseur++;
        }while(strcmp(searchmark,"[NO]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit le nom
        for(i=0;i!=29;i++){stockage[i+(saveID)*105]=savebuffer[i];}
        
        memset(savebuffer,0,sizeof(savebuffer));
//on cherche [AT]
        curseur +=4;
        savepos =curseur;
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            curseur++;
        }while(strcmp(searchmark,"[AT]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit l'attaque
        stockage[31+(saveID)*105]=char2int(savebuffer);

        memset(savebuffer,0,sizeof(savebuffer));
//on cherche [DE]
        curseur +=4;
        savepos =curseur;
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            curseur++;
        }while(strcmp(searchmark,"[DE]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit la defense
        stockage[32+(saveID)*105]=char2int(savebuffer);

        memset(savebuffer,0,sizeof(savebuffer));
//on cherche [NI]
        curseur +=4;
        savepos =curseur;
        do{
            Bfile_ReadFile(recuphandle,searchmark,4,curseur);
            curseur++;
        }while(strcmp(searchmark,"[NI]") !=0);
        Bfile_ReadFile(recuphandle,savebuffer,curseur-savepos-1,savepos);//on lit leniveau
        stockage[33+(saveID)*105]=char2int(savebuffer);

    autreX+=1;
    ML_rectangle(11,20,autreX,30,1,ML_BLACK,ML_BLACK);
    Bdisp_PutDisp_DD();
    }
}


j'ai été une vrai andouille, j'ai juste oublié d'initialiser savebuffer avec memset(savebuffer,0,sizeof(savebuffer)); juste après //on cherche l'ID. :stupid:
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 25/01/2014 16:59 | #


Ben voilà XD
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 26/01/2014 09:34 | #


pour la barre de progression, j'ai besoin d'un float, mais pour afficher la barre il faut un int. comment on convertit un float en int? en castant,
float i=3.74;
int j=(int)i;

ça me donne 3 au lieu de 4, est ce qu'il existe un fonction qui permet d'arrondir à l'entier le plus proche?
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 26/01/2014 09:48 | #


Dans la lib Maths il devrait y avoir ça non?
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 26/01/2014 10:05 | #


tu peut faire comme ça :

int arrondi(float nombre)
{
   int i;
   i = (int)(nombre + 0.5);
   if(i == (int)nombre) return i;
   return i+1;
}

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 26/01/2014 12:12 | #


perso, je fais ça: #define arrondi(var) (int)(var+0.5)
utiliser un if est inutile (et vu la complexité du calcul, on a pas besoins de faire une fonction, un define suffit)
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 26/01/2014 12:22 | #


Pas faux.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 26/01/2014 17:23 | #


j'ai un tableau, que j'envoie dans une fonction qui le remplit, ensuite, je l'envoie dans une fonction qui lie le tableau. mais là le tableau est vide 0_0.
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 26/01/2014 19:31 | #


Tu passe par des pointeurs ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 26/01/2014 19:50 | #


Oui, souvent
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 26/01/2014 20:57 | #


Bizarre, parce que justement avec les pointeurs c'est pas censé bugguer...
Tu peux faire voir le bout du code qui buggue ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 31/01/2014 10:55 | #


@Dark Storm, j'ai repris ton code et corrigé quelques erreurs(le curseur n’avançait pas )

int AddIn_main(int isAppli, unsigned short OptionNum){
   int recuphandle = 0;
int stockage[105][34];
    char *buffer = NULL;
    char buffer2[40];
    int type = 0;
    int curseur = 0;
    int curseur2 = 0;
    int tailleFichier;
    int monstre = 0;
int mode=0;

    FONTCHARACTER PathName[]={'\\','\\','f','l','s','0','\\','M','O','N','S','T','R','E','S','.','c','s','v',0};

    recuphandle = Bfile_OpenFile(PathName,_OPENMODE_READ);
    
    ML_clear_vram();

    PopUpWin(5);
    ML_rectangle(11,20,115,30,1,ML_BLACK,ML_TRANSPARENT);
    ML_display_vram();

    tailleFichier = Bfile_GetFileSize(recuphandle); // on récupère la taille du fichier
    
    buffer = (void*)malloc(tailleFichier); // on copie le fichier dans le buffer
    Bfile_ReadFile(recuphandle, buffer, tailleFichier, 0);
memset(stockage,0,sizeof(stockage));
    while(curseur < tailleFichier)
    {
    curseur++;
        if(buffer[curseur] == ';'||buffer[curseur]=='\n') // si on tombe sur un ; ou un retour à la ligne
        {
            memcpy(buffer2, &buffer[curseur2], (curseur - curseur2) * sizeof(char)); // on copie ce qu'il y a entre deux points virgules
            
            switch(mode)
            {
                case 0 : // si on est sur l'ID
                    stockage[monstre][0] = char2int(buffer2); // on copie la valeur au bon endroit
                    break;

                case 1 : // si on est sur le nom
                    memcpy(&(stockage[monstre][1]), buffer2, 40 * sizeof(char)); // on copie le nom dans le tableau
                    break;

                case 3 : // si on est sur l'attaque
                    stockage[monstre][13] = char2int(buffer2); // on copie la valeur au bon endroit
                    break;

                case 4 : // si on est sur la défense
                    stockage[monstre][14] = char2int(buffer2); // on copie la valeur au bon endroit
                    break;

                case 5 : // si on est sur le niveau
                    stockage[monstre][15] = char2int(buffer2); // on copie la valeur au bon endroit
                    break;
            }
            memset(buffer2, 0, 40 * sizeof(char)); // on réinitialise le buffer2
            curseur2 = curseur + 1; // et la position du dernier curseur

            mode++;
            if(mode > 5) mode = 0; // on change le type de donnée
        }

        if(buffer[curseur] == '\n') monstre++; // on change de monstre

        ML_rectangle(11, 20, monstre + 11, 30, 1, ML_BLACK, ML_BLACK); // pour la barre de progression
        ML_display_vram();
    }

    free(buffer); // on libère la mémoire

    locate(1,1);
    Print("succes");
ML_clear_vram();
PrintV(1,1,stockage[10][13]);
PrintV(1,10,stockage[11][13]);
PrintV(1,19,stockage[12][13]);
ML_display_vram();
Sleep(10000);
return 1;
}


maintenant, il marche bien, mis à part que la DEF est à la place de l'ATK et le niveau est à la place de la DEF, et donc il n'y a pas l'ATK dans le tableau stockage

Ajouté le 01/02/2014 à 17:13 :
j'ai réparé le problème après 5h d'intense réflexion devant CSS , Mais comment lire le nom? :huh: (je précise que le nom est un tableau de char qui est dans un int, le nom fait 40octet en char et 10octet en int)

Ajouté le 04/02/2014 à 19:54 :
Comment on fait pour faire un retour à la ligne quand on écrit dans un fichier?

strcat(ecriture,"salut ça va\net toi?");
Bfile_WriteFile(recuphandle,ecriture,sizeof(ecriture));


mais \n ne marche pas, ça écris "salut ça vaet toi?"
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 04/02/2014 19:58 | #


Normalement cela fonctionne bien, je ne comprend pas le probleme
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Précédente 1, 2, 3 ··· 5, 6, 7, 8, 9, 10, 11 ··· 18, 19, 20 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 252 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

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