Posté le 27/11/2019 15:12
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 72 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 02/11/2020 15:21 | #
Particule peut intégrer un convertisseur, c'est pas un programme compliqué.
Citer : Posté le 02/11/2020 15:23 | #
Oui j'ai un peu analysé le SpriteCoder.zip, mais j'ai pas bien compris comment fonctionne sa conversion
Ajouté le 02/11/2020 à 15:26 :
Et j'ai crû comprendre aussi que SpriteCoder n'arrive pas à lire les .bmp
Albert Einstein
Citer : Posté le 02/11/2020 16:12 | #
Le format utilisé par MonochromeLib est assez simple. Tu commences avec une image en noir et blanc.
1. Étendre l'image par des pixels blancs sur la droite pour que la largeur soit un multiple de 8.
2. Encoder tous les pixels blancs par 0 et les pixels noirs par 1.
3. Stocker tous les pixels ligne par ligne de haut en bas, et pour chaque ligne de gauche à droite.
4. Se souvenir des dimensions originales de l'image (avant l'étape 1).
Citer : Posté le 02/11/2020 16:16 | #
d'accord je vais essayer de le convertir en python
Ajouté le 03/11/2020 à 21:35 :
C'est normale qu'on ne puisse pas faire de class sur le sdk ?
Albert Einstein
Citer : Posté le 03/11/2020 21:39 | #
Le SDK supporte le C++ même s'il n'y a pas de lib standard.
Citer : Posté le 03/11/2020 23:05 | #
J'ai tenté d'utiliser des string sur le sdk et j'ai l'impression qu'il ne veut pas.
Donc on peut pas stocker de string dans une variable, ça ma parait bizarre ?
Albert Einstein
Citer : Posté le 03/11/2020 23:11 | #
Il n'y a pas de lib standard, donc pas de string (en vrai il y a je crois une implémentation incomplète et non garantie donc qu'il ne faut pas utiliser en gros), pas de vector, etc. Mais le langage est supporté.
Citer : Posté le 03/11/2020 23:18 | #
j'ai une erreur de type:
** L2310 (E) Undefined external symbol "string::operator =(const string &)" referenced in "C:\Users\leofa\OneDrive\Documents\CASIO\fx-9860G SDK\Tutoriel\Debug\Element.obj"
Mais comme a dit Lephenixnoir les string en n'existe pas pour le sdk donc est ce que vous avez une alternative pour par exemple faire :
string a="du texte" //(avec a comme longueur indéfini)
locate(1,5);
Print((unsigned char*) a);
Albert Einstein
Citer : Posté le 03/11/2020 23:21 | #
Tu peux pas passer de std::string à un pointeur comme ça. Pour du texte brut, crée la chaîne de caractères directement :
locate(1,5);
Print((unsigned char *)a);
Sans vouloir être décourageant ici, si tu comptes écrire un moteur de jeu supportant les add-ins, prends le temps de maîtriser le langage d'abord. Si tu rushes tout d'un coup tu finiras vraiment avec un programme moyen.
Citer : Posté le 03/11/2020 23:25 | #
Ouai tu as raison, mais pour l'instant je compte juste créer un prototype en attendant que je sache bien utiliser le C, histoire d'avancer un peu sur Particule car sinon je finirai jamais ce projet à cette allure.
Ajouté le 05/11/2020 à 17:08 :
Bonjour,
Je voulais savoir s'il était possible de stocker plusieurs class dans un tableau (En C++)
Exemple de ce que je veux faire :
classe.cpp :
class chien
{
public:
chien(int x, int y);
private:
int x;
int y;
};
class chat
{
public:
chat(int x, int y);
private:
int x;
int y;
};
main.cpp :
chien Felix(0,0);
chat Kitty(1,4);
class Animal[] = {Felix,Kitty}
Alors je sais très bien qu'on peut pas mélanger des types dans un tableau mais peut-être qu'il existe une alternative
Albert Einstein
Citer : Posté le 05/11/2020 17:14 | #
Déclarer Animal comme une classe de base dont Chat et Chien héritent, et créer un tableau de références ou pointeurs (au choix).
Citer : Posté le 05/11/2020 17:18 | #
class Animal{
public:
void Animal(int _type,int _x, int _y){
type = _type;
...
}
private:
int type;
int x,y;
};
Animal Kitty(1,0,0); //1:chat 2:chien ...
...
Animal listeanimal[] = {Kitty,...}
Citer : Posté le 05/11/2020 17:25 | #
Alors ça c'est la méthode crade. En C++ tu peux utiliser l'héritage.
{
private:
int x, y;
}
class Cat : public Animal
{
public:
Cat(int x, int y);
}
class Dog : public Animal
{
public:
Dog(int x, int y);
}
Cat kitty(1, 1);
Dog doggo(2, 2);
Animal liste[] = {kitty, doggo};
J'ai pas fait de C++ depuis un bail, mais t'as l'idée générale.
Citer : Posté le 05/11/2020 17:27 | #
en fait j'ai pris chat et chien avec les même spécificité comme exemple mais c'est moi qui ait fait une erreur dans mon explication.
En gros, pour simplifier mon problème : j'ai plusieurs class nommé NewElement, PlayerController et BoxCollider
j'ai NewElement qui sera un élément de la scene (par exemple une porte, un personnage, une boite, etc..)
Et PlayerController et BoxCollider qui sont des comportements de ces élément
Exemple:
je créer un joueur avec : NewElement joueur1(x,y,...,{PlayerController Pc(1,3), BoxCollider Bc(2,3,"text") } )
et une boite : NewElement Boite1(x,y,...,{BoxCollider Bc(5,0,"phrase") } )
Ajouté le 05/11/2020 à 17:29 :
D'accord Dark storm, c'est ce que disait Lephenixnoir avec l'héritage enfin je crois si j'ai bien compris ,
ça se rapproche pas mal de ce que je veux faire en effet.
Merci
Albert Einstein
Citer : Posté le 05/11/2020 19:06 | #
Voilà c'est comme ce que Darks a dit à deux choses près :
1. Il faut qualifier x et y comme protected parce que private c'est inaccessible pour les classes dérivées
2. Il faut créer un tableau de référence ou de pointeurs :
Animal *liste[] = {&kitty, &doggo};
Citer : Posté le 05/11/2020 19:13 | #
D'accord merci beaucoup !
Ajouté le 26/12/2020 à 17:55 :
Bonjours, j'ai un bug très bizarre car je n'arrive pas à obtenir la longueur d'un tableau en utilisant "montableau.length".
Mon tableau est en fait un ensemble d'élément faisant partie d'une class.
Donc en gros mon tableau est initialisé de cette manière "Maclasse* montableau[] = {...};"
Merci d'avance.
Albert Einstein
Citer : Posté le 26/12/2020 17:57 | #
Un tableau C n'est pas un objet, c'est un tableau. Le langage ne compte pas la taille du tableau.
Si, et seulement si ton tableau a été alloué par Type tableau[] ou Type tableau[taille] alors tu peux utiliser l'opérateur sizeof qui te donne la taille de la variable en octets. En divisant avec la taille d'un élément, tu peux obtenir le nombre d'éléments.
int huit = sizeof(tableau) / sizeof(tableau[0]);
Ça ne marche que si ton tableau est de type Type[<n>], et pas Type* ou autre variation.
Ajouté le 26/12/2020 à 17:58 :
Précision : de façon générale si tu veux avoir la taille du tableau tu dois la compter toi-même.
Citer : Posté le 26/12/2020 18:00 | #
Ha d'accord je comprend mieux pourquoi il m'a refuser, merci beaucoup.
Ajouté le 07/01/2021 à 18:40 :
Bonjours, comment je peut utiliser dynamic_cast<> dans le SDK ?
Car il me dit "Identifier "dynamic_cast" is undefined"
Albert Einstein
Citer : Posté le 07/01/2021 19:10 | #
Probablement pas du coup. Le support du standard C++ est très partiel dans le SDK.
Citer : Posté le 07/01/2021 19:22 | #
Probablement pas du coup. Le support du standard C++ est très partiel dans le SDK.
Ha d'accord merci quand même
Ajouté le 07/01/2021 à 21:03 :
Mais du coup si on revient sur l'exemple d'un peu plus haut, il est impossible de retransformer un élément du tableau Animal en Cat ou Dog ?
du style :
Cat kitty(1, 1);
Dog doggo(2, 2);
Animal *liste[] = {&kitty, &doggo};
Cat kitty2 = (Cat)liste[0];
Albert Einstein
Citer : Posté le 07/01/2021 21:25 | #
Tu peux toujours remplacer le dynamic_cast par un cast C sur le pointeur :
Ta liste contient des pointeurs dont tu ne pouvais pas obtenir un Cat même dans un environnement C++ complet, c'est bien un Cat * que tu aurais eu.