problèmes SDK-2
Posté le 14/01/2019 11:48
Nouvelle question: est-il possible de dessiner un sprite une seule fois dans la vram et de ne réinitialiser que le DD?
J'ai essayé d'installer MonochromeLib,
avec succès mais j'ai une erreur lorsque j'essaye de tracer quelque chose à l'écran:
programme:
#include "fxlib.h"
#include "MonochromeLib.h"
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
ML_clear_vram();
ML_pixel(10, 10);
while(1){
GetKey(&key);
}
return 1;
}
erreur renvoyée:
Executing Hitachi SH C/C++ Compiler/Assembler phase
set SHC_INC=C:\Program Files\CASIO\fx-9860G SDK\OS\SH\include
set PATH=C:\Program Files\CASIO\fx-9860G SDK\OS\SH\bin
set SHC_LIB=C:\Program Files\CASIO\fx-9860G SDK\OS\SH\bin
set SHC_TMP=C:\Documents and Settings\Mactul\Bureau\CASIO\fx-9860G SDK\test\Debug
WARNING: The following dependant file(s) do not exist: "MonochromeLib.h". Line: 74
"C:\Program Files\CASIO\fx-9860G SDK\OS\SH\bin\shc.exe" -subcommand=C:\DOCUME~1\MACTUL~1\LOCALS~1\Temp\hmk103.tmp
C:\Documents and Settings\Mactul\Bureau\CASIO\fx-9860G SDK\test\test.c(31) : C2202 (E) Number of parameters mismatch
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.
Je précise que je suis archi débutant en C
Je mettrais dorénavant les questions résolues en gris
Citer : Posté le 14/01/2019 12:29 | #
Ligne 31 de ton fichier test.c, tu as appelé une fonction avec un nombre de paramètres (d'arguments, quoi) incorrect.
Mon blog ⋅ Mes autres projets
Citer : Posté le 14/01/2019 13:18 | #
Tu n'as pas indiqué la couleur du pixel.
Citer : Posté le 14/01/2019 19:57 | #
C'est obligé?
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 14/01/2019 20:51 | #
Bien sûr. En C, toute fonction a un nombre fixé de paramètres qui ont chacun un type. Pour appeler la fonction, tu dois donner une valeur pour chacun des paramètres, et la valeur doit correspondre au type fixé.
Par exemple, ML_pixel() prend trois paramètres : d'abord deux entiers pour spécifier quel pixel on doit colorier, puis la couleur (qui, pour une raison que je ne vais pas détailler, est aussi un entier, mais MonochromeLib propose des noms). Par exemple :
Citer : Posté le 16/01/2019 15:07 | #
Merci je testerais quand je pourrais.
Même si ça marche, je garderais le topic sous le coude pour les autres éventuels problèmes
Ajouté le 18/01/2019 à 17:13 :
Est-il possible de dessiner un sprite une seule fois dans la vram et de ne réinitialiser que le DD?
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 18/01/2019 19:08 | #
Oui, mais tu n'as pas vraiment envie de faire ça... ce n'est pas une bonne idée.
Citer : Posté le 19/01/2019 18:28 | #
Je ne comprend pas... Pourquoi ?
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 19/01/2019 18:46 | #
Il n'y a pas des dizaines de façon de dessiner le contenu de ton écran dans un jeu en C/C++. En fait, il n'y en a qu'une :
1. Effacer la VRAM
2. Dessiner le fond...
3. Dessiner les objets, le joueur, les ennemis...
4. Dessiner l'interface (barres de HP, peu importe)...
5. Envoyer tout à l'écran
6. Au frame suivant, recommencer.
Il y a plusieurs raisons qui justifient tout ça. Je vais essayer de passer sur tous les points importants.
On ne dessine jamais directement sur l'écran pour éviter exactement ce qui se passe en Basic : voir le dessin en cours de construction. Dessiner entièrement dans la VRAM (qui est juste une partie de la mémoire invisible à l'utilisateur) jusqu'à ce qu'on ait fini permet d'éviter ça. Les écrans sont faits pour marcher comme ça, et ils passent de façon très fluide d'un frame au frame suivant.
On ne dessine pas le nouveau frame à partir du frame précédent parce que ça pose beaucoup de problèmes. Quand un personnage change de position, il faudrait redessiner ce qu'il y avait derrière lui au frame d'avant. Or il y peut y avoir d'autres personnages, des objets qui se baladent, une partie du fond du jeu... c'est compliqué et inutile. Les performances sont largement suffisantes pour utiliser la méthode normale puisqu'on peut facilement générer et afficher 500 images par secondes sur les calculatrices monochromes.
Sur Graph 90+E, où la performance de l'écran est critique, c'est aussi la bonne façon de faire car on ne peut tout simplement pas dessiner directement sur l'écran. Pour obtenir une fréquence de rafraîchissement décente, il faut réaliser la transmission entre la VRAM et l'écran à l'aide du DMA (un petit module sur la puce qui est fait juste pour ça), et le DMA ne peut que copier en bloc, pas dessiner avec finesse. À tel point qu'il faut même deux VRAMs pour mettre en oeuvre les meilleures techniques.
Citer : Posté le 19/01/2019 18:54 | #
Merci pour cette réponse détaillée
je dois donc si j'ai compris redessiner toujours tout l'arrière-plan et le sprite
Si c'est rapide ça me va
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...