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


Index du Forum » Discussions » problèmes SDK-2
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

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


Cakeisalie5 En ligne Ancien administrateur Points: 1909 Défis: 11 Message

Citer : Posté le 14/01/2019 12:29 | #


C:\Documents and Settings\Mactul\Bureau\CASIO\fx-9860G SDK\test\test.c(31) : C2202 (E) Number of parameters mismatch

Ligne 31 de ton fichier test.c, tu as appelé une fonction avec un nombre de paramètres (d'arguments, quoi) incorrect.

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !

Mon blogBesoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Lephenixnoir Hors ligne Administrateur Points: 24223 Défis: 170 Message

Citer : Posté le 14/01/2019 13:18 | #


Tu n'as pas indiqué la couleur du pixel.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 14/01/2019 19:57 | #


C'est obligé?
Mes programmes
Cliquer pour enrouler

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...
Lephenixnoir Hors ligne Administrateur Points: 24223 Défis: 170 Message

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 :

ML_pixel(1, 1, ML_BLACK);

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

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?

Mes programmes
Cliquer pour enrouler

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...
Lephenixnoir Hors ligne Administrateur Points: 24223 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 19/01/2019 18:28 | #


Je ne comprend pas... Pourquoi ?
Mes programmes
Cliquer pour enrouler

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...
Lephenixnoir Hors ligne Administrateur Points: 24223 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

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
Mes programmes
Cliquer pour enrouler

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

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