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 !
Je pense que ton erreur peut-être dû à plusieurs choses :
Voila
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
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