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 » Utilisation des fonctions de la MonochromeLib
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Utilisation des fonctions de la MonochromeLib

Posté le 30/03/2019 17:10

Bon, excusez-moi de poser cette question un peu stupide mais ça m'arrive souvent et c'est très rageant. Je ne parviens pas à compiler correctement un programme utilisant la fonction ML_line de la MonochromeLib. C'est dans le code de mon moteur de raycasting, excusez-moi également pour la proporeté de ce dernier, c'est une ébauche
#include "fxlib.h"
#include "MonochromeLib.h"
#include "math.h"

//****************************************************************************
//  AddIn_main (Sample program main function)
//
//  param   :   isAppli   : 1 = This application is launched by MAIN MENU.
//                        : 0 = This application is launched by a strip in eACT application.
//
//              OptionNum : Strip number (0~3)
//                         (This parameter is only used when isAppli parameter is 0.)
//
//  retval  :   1 = No error / 0 = Error
//
//****************************************************************************
int AddIn_main(int isAppli, unsigned short OptionNum)
{
    double PI = 3.1415926535897932;
    double r = 0, angleCam = 0, camX = 2, camY = 4, distRayon = 0, angleRayon = 0, distMur = 0;
    int murX, murY, ray = 0;
    unsigned int key;

    int map[7] [21] =
    {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1},
    {1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1},    
    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};

    ML_clear_vram();

    do{
    ML_clear_vram();
    ML_clear_screen();

    //Calculs de deplacements
    camX = camX+r*(cos(angleCam));
    camY = camY+r*(sin(angleCam));
    r = 0;
    
    //Personnage
    locate(camX, camY);
    Print((unsigned char*)"+");
    
    //Rayons de detection
    ray = 0;
    for(angleRayon = angleCam-(1.0/6*PI); angleRayon<angleCam+(1.0/6*PI); angleRayon = angleRayon+0.0082)
    {
        ray++;
        for(distRayon = 0; distRayon<=20; distRayon++)
        {
            murX = (int) (distRayon*cos(angleRayon)+camX);
            murY = (int) (distRayon*sin(angleRayon)+camY);

            if(map[murY] [murX] == 1)
            {
                distMur = sqrt(pow((distRayon*cos(angleRayon)+camX)-camX, 2)+pow(    (distRayon*sin(angleRayon)+camY)-camY, 2));
                ML_line(ray, (int) ((63/distMur)+31), ray, (int) ((-63/distMur)+31), ML_BLACK);      //Cette commande bug
                break;
            }
        }
    }

    ML_display_vram();

    GetKey(&key);

    //Commandes
    if(key == KEY_CTRL_UP && map[(int) (1*sin(angleCam)+camY)] [(int) (1*cos(angleCam)+camX)] != 1)
    {
        r++;
    }
    if(key == KEY_CTRL_DOWN && map[(int) (-1*sin(angleCam)+camY)] [(int) (-1*cos(angleCam)+camX)] != 1)
    {
        r--;
    }
    if(key == KEY_CTRL_LEFT)
    {
        angleCam = angleCam-(1.0/12*PI);
    }
    if(key == KEY_CTRL_RIGHT)
    {
        angleCam = angleCam+(1.0/12*PI);
    }

    }while (key != KEY_CTRL_EXIT);
    
    return 1;
}


Voici également l'erreur revoyée par le SDK:
Executing Hitachi SH C/C++ Compiler/Assembler phase

set SHC_INC=E:\CASIO\logiciels\fx9860g_sdk\FxSDK\OS\SH\include
set PATH=E:\CASIO\logiciels\fx9860g_sdk\FxSDK\OS\SH\bin
set SHC_LIB=E:\CASIO\logiciels\fx9860g_sdk\FxSDK\OS\SH\bin
set SHC_TMP=E:\CASIO\logiciels\fx9860g_sdk\Projets\Moteur de Raycasting\Debug
WARNING: The following dependant file(s) do not exist: "MonochromeLib.h". Line: 74
WARNING: The following dependant file(s) do not exist: "MonochromeLib.h". Line: 91

Executing Hitachi OptLinker04 phase

"E:\CASIO\logiciels\fx9860g_sdk\FxSDK\OS\SH\bin\Optlnk.exe" -subcommand=C:\Users\CHASS_~1\AppData\Local\Temp\hmk8B6A.tmp

** L2310 (E) Undefined external symbol "_ML_line" referenced in "E:\CASIO\logiciels\fx9860g_sdk\Projets\Moteur de Raycasting\Debug\RCMOT001.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.



Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 30/03/2019 17:15 | #


Coucou ! Aie pas peur de poser des questions, on est tous passé par là (en ce qui me concerne, je suis en train de passer )

Je pense que ton erreur peut-être dû à plusieurs choses :
Vérifie que MonochromeLib.c et son header sont bien dans le dossier de ton projet
Que MonochromeLib.c et son header sont bien inclus dans ton projet du SDK
Que la commande ML_line est bien décommentée dans le header de MonochromeLib.h

Voila je pense avoir fait le tour des erreurs les plus fréquentes...
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 30/03/2019 17:16 | #


J'ai déjà regardé ça, tout est fait dans ce que tu m'as cité..
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 30/03/2019 17:19 | #


Tu as essayé de mettre le dossier « Debug » à la corbeille et de relancer la compilation ?
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 30/03/2019 17:29 | #


Nope
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 30/03/2019 17:30 | #


Alors essaye Des fois ça marche : ça doit être un bug du... débug qui est enlevé avec son dossier... Bon, je sais pas pourquoi, mais parfois ça marche >_<'

Pour faire ça, il faut aller dans le dossier du projet et enlever le dossier « Debug »
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24579 Défis: 170 Message

Citer : Posté le 30/03/2019 17:35 | #


Sinon c'est dans Project » Rebuild All.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 31/03/2019 09:53 | #


Excuse je n'ai pas répondu hier mais comme on dit "pas de nouvelles, bonnes nouvelles". En effet le programme fonctionne feu de dieu et j'attends l'accord de Mactul pour le poster.

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 86 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