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.
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...
Citer : Posté le 30/03/2019 17:16 | #
J'ai déjà regardé ça, tout est fait dans ce que tu m'as cité..
-Planétarium 2
Citer : Posté le 30/03/2019 17:19 | #
Tu as essayé de mettre le dossier « Debug » à la corbeille et de relancer la compilation ?
Citer : Posté le 30/03/2019 17:29 | #
Nope
-Planétarium 2
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 »
Citer : Posté le 30/03/2019 17:35 | #
Sinon c'est dans Project » Rebuild All.
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.
-Planétarium 2