Posté le 15/07/2017 13:54
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 256 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
Citer : Posté le 17/12/2021 23:40 | #
Non il est uniquement Initialisé avec la ligne this->canvas = ((CanvasUI*)tempParent->gameObject->GetComponent("CanvasUI"));
this->canvas est à NULL de base non ?
Albert Einstein
Citer : Posté le 17/12/2021 23:44 | #
Non, ce n'est le cas que pour les objets globaux ! Les objets créés sur la pile et le tas ont des octets aléatoires au moment de l'allocation, et si tu ne les assignes pas explicitement tu n'as pas NULL automatiquement.
Pas besoin d'aller chercher très loin :
// ...
};
Je crois que tu peux même laisser les parenthèses vides, mais bon à ce niveau on n'y gagne pas grand-chose.
Citer : Posté le 17/12/2021 23:48 | #
Ha c'est pour ça, sur les fx ça fait automatiquement donc c'est pour ça que j'avais pas de problème
Sinon ça c'est équivalent à ta ligne ?
ButtonUI(GameObject* gameObject, Texture* NormalTexture, Texture* HighlightedTexture, const char* UUID = NULL) : MonoBehaviour("ButtonUI", gameObject, UUID) {
...
this->sprite = NULL;
};
Albert Einstein
Citer : Posté le 17/12/2021 23:55 | #
Ce n'est pas automatique sur la Graph mono non plus, on parle de la sémantique du C++. Mais sur la Graph mono ça devait tomber en marche par chance...
Oui c'est ça. Regarde les listes d'initialisation des constructeurs si ça t'intéresse, sinon tu peux prendre la forme explicite aussi
Citer : Posté le 17/12/2021 23:58 | #
Ok ok bon bah merci beaucoup en tout cas !
Ajouté le 20/12/2021 à 15:11 :
Hello !
Je suis en train de chercher comment lire et écrire des donner et les seuls choses que j'ai trouvé c'est ça :
Memory
Gérer les fichiers en C
Et je voulais savoir si c'est toujours fonctionnel et si c'est compatible pour Graph 90 aussi.
Albert Einstein
Citer : Posté le 20/12/2021 15:23 | #
Ouais alors non le premier c'est no-no et le second c'est pas trop dans le style de gint (les fonctions sont nommées différemment et il y a quelques différences).
Je suis en train de refaire ce système (pour Graph 35+E II et Graph 90+E). Pour l'instant sur gint dev tu as l'API Unix pour la gestion des fichiers (ie. open(), read(), write(), etc). Aujourd'hui je suis en train d'ajouter la gestion des dossiers. Et ensuite je m'occuperai de l'API standard C (ie. fopen(), fread(), fwrite(), etc). Je te conseille soit d'utiliser l'API Unix qui est sur gint dev soit d'attendre que ça se stabilise avant de le faire.
Même si tu utilises Bfile sur la Graph mono, il y a des différences à la con entre l'implémentation mono pré-Graph 35+E II, l'implémentation Graph 35+E II, et l'implémentation Graph 90+E. Si tu tiens vraiment à le faire avec BFile, lis <gint/bfile.h> (ici sur dev, j'ai mis à jour récemment).
Dans tous les cas : c'est pas totalement trivial, il faut faire attention aux modèles, et si tu veux supporter autre chose que la Graph 35+E II et la Graph 90+E avec tes fichiers tu vas te payer les immondes du fs original de Casio.
Citer : Posté le 20/12/2021 15:42 | #
Pour l'instant je fais des tests pour la Graph 90.
Donc je vais utiliser API Unix comme tu me le conseille.
Il y a moyen de lire un fichier ligne à ligne ?
Albert Einstein
Citer : Posté le 20/12/2021 15:47 | #
Il y a moyen de lire un fichier ligne à ligne ?
Non il faut la libc pour ça :x
Citer : Posté le 08/01/2022 10:18 | #
In this function
static int get_inputs(void)
{
int opt = GETKEY_DEFAULT & ~GETKEY_REP_ARROWS & ~GETKEY_MOD_SHIFT & ~GETKEY_MOD_ALPHA;
int timeout = 1;
while(1)
{
key_event_t ev = getkey_opt(opt, &timeout);
if(ev.type == KEYEV_NONE) return -1;
return ev.key;
}
}
can we make it work if the keys are held pressed without releasing it and still registering it every frame? like for continuous movement
all my movement code is here https://gitea.planet-casio.com/Gladosse/Minesweeper/src/branch/master/src/main.c
sorry if it's in english, my french is limited, you can answer in french
Citer : Posté le 08/01/2022 10:34 | #
Well that's the goal of GETKEY_REP_ARROWS which you disabled: it repeats the key press every so often. You can change the delay with repeat_getkey().
However, getkey() is designed with GUI-like applications in mind, in the sense that keyboard events are used to schedule the application. Since you already have your own 40-FPS frame system, you will probably end up fighting it over the ability to manage your timing, so you should probably use events directly instead.
You can simply read from the event queue with pollevent() at each frame, which will inform you of every key press and release that occured since your last poll. You can act on this information right away, or you can wait after you've read all the events and then use the keydown() function which reminds you of which key you have been told is pressed (*).
(* The keydown() function does not tell you the absolute state of the key, but the state as reported by the events you've polled so far. This distinction is important to allow switching to/from getkey(), and it makes no difference as long as you read events before using keydown().)
This function would return any arrow key that is currently pressed, or -1:
{
// Read events
key_event_t ev;
while((ev = pollevent()).type != KEYEV_NONE) {
// Here you could analyze key presses/releases for the frame
}
// Or use this shortcut if you don't check the contents of the events,
// which is equivalent to the empty loop above:
// clearevents();
// Now that you're up-to-date, you can use keydown() to check if a key is pressed
if(keydown(KEY_LEFT))
return KEY_LEFT;
if(keydown(KEY_RIGHT))
return KEY_RIGHT;
if(keydown(KEY_UP))
return KEY_UP;
if(keydown(KEY_DOWN))
return KEY_DOWN;
return -1;
This is not exactly the same logic as getkey(), however I think this will make things easier for your program, especially since you would now be able to detect diagonal movement (some models' directional pads can input diagonals very easily).
No problem with English (I really thought you were a French native too!)
Citer : Posté le 08/01/2022 10:47 | #
Merci pour ton aide! A l'ecrit je me debrouille pas mal
En plus c'est beaucoup plus rapide
Citer : Posté le 18/06/2022 19:09 | #
Yo yo ! Salut ! J'essaie d'apprendre à me servir de fxSDK pour développer. J'ai déjà téléchargé tous les trucs nécessaires, j'ai même crée le projet, mais je me demandais comment on écrit du code en C sur WSL (je n'ai pas de PC Linux, je suis sur Windows) ? Parce que d'après ce que j'ai compris, il n'y a pas d'IDE qui vient avec le fxSDK ?
- Java
- Basic Casio
- C
- OCaml
J'ai une Casio Graph 90+E.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique :
Rien ne fonctionne... et personne ne sait pourquoi ! »
- Albert Einstein
Remerciemembres
Citer : Posté le 18/06/2022 19:12 | #
C'est exact. Tu peux utiliser un éditeur de texte ou un IDE de ton choix, par exemple j'utilise Sublime Text, mais tu peux aussi utiliser eg. VS Code (tu auras alors tous les outils liés au C pur, juste pas d'outils pour exécuter/debugger).
Si tu peux accéder au système de fichiers de WSL tu pourrais aussi éditer directement avec ton IDE favori sous Windows.
Citer : Posté le 18/06/2022 19:12 | #
Tu peux utiliser nano ou vi sur ton fichier : ‘nano main.c’
Après pour un « vrai » IDE tu peux te tourner vers Visual Studio Code mais il te faudra un gestionnaire de fenêtres pour WSL pour l’ouvrir !
Citer : Posté le 18/06/2022 19:52 | #
Ah ok merci ! J'avais effectivement lu quelque part que WSL ne venait pas avec la version graphique. Par contre j'avais vu (en cours de NSI) comment modifier des fichiers texte avec nano, mais je savais pas que ça marchais avec du code aussi ! Merci @Potter360
- Java
- Basic Casio
- C
- OCaml
J'ai une Casio Graph 90+E.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique :
Rien ne fonctionne... et personne ne sait pourquoi ! »
- Albert Einstein
Remerciemembres
Citer : Posté le 18/06/2022 22:38 | #
De rien ! En soi le code est un fichier texte comme les autres !
Citer : Posté le 19/06/2022 16:22 | #
Héhé je suis de retour ! Alors j'ai suivi le tuto sans problème jusqu'à où il faut envoyer l'add-in à la calto. Là, j'ai branchée la mienne (Graph 90+E, oui j'ai compilé avec "fxsdk build-cg") avec le cable USB à mon PC, et j'ai fait "fxsdk send-cg" et là j'ai eu une erreur qui me dit :
<fxSDK> Running: fxlink -sw ./MystNB.g3a
error: cannot open udisks2 client: Could not connect: No such file or directory
Je suis sur WSL pour rappel. Qqn peut m'aider ?
- Java
- Basic Casio
- C
- OCaml
J'ai une Casio Graph 90+E.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique :
Rien ne fonctionne... et personne ne sait pourquoi ! »
- Albert Einstein
Remerciemembres
Citer : Posté le 19/06/2022 16:24 | #
fxlink ne marche pas sous WSL, il faut que tu copies le fichier à la main. C'est comme pour les scripts Python, rien de bien violent ; fxlink aide juste à l'automatiser quand t'es sous Linux pour gagner du temps.
Citer : Posté le 19/06/2022 16:25 | #
Ok dans ce cas-là, ma question devient : comment j'accède aux fichiers de la calto branchée en USB sur WSL ?
- Java
- Basic Casio
- C
- OCaml
J'ai une Casio Graph 90+E.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique :
Rien ne fonctionne... et personne ne sait pourquoi ! »
- Albert Einstein
Remerciemembres
Citer : Posté le 19/06/2022 16:28 | #
Tu n'as WSL qu'en console right ? Ca va être un peu compliqué. Je crois que le plus simple c'est de sortir le fichier de WSL vers Windows (tu dois avoir accès à la partition Windows via /mnt/c, un truc comme ça) et ensuite copier comme tu le fais d'habitude via Windows.
Citer : Posté le 19/06/2022 16:32 | #
Effectivement je suis en console. Je vais essayer ça et je te dit dans 1-2 min.
P.S. : Je le copie à la racine de la calto ?
- Java
- Basic Casio
- C
- OCaml
J'ai une Casio Graph 90+E.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique :
Rien ne fonctionne... et personne ne sait pourquoi ! »
- Albert Einstein
Remerciemembres