Posté le 27/11/2019 15:12
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 237 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 12/01/2021 18:35 | #
Si tu veux des fps constants, utilise des timers, et Gint (parce qu’apparemment ce n'est pas le cas )
C'est possible avec fxlib mais c'est nettement plus chiant
Citer : Posté le 12/01/2021 18:42 | #
Ok je vais voir ce que je peu faire
Albert Einstein
Citer : Posté le 12/01/2021 18:45 | #
Euh pas si vite. Ça te prendrait un (long) moment et c'est pas le jour parfait pour installer le fxSDK (grosse mise à jour dans les cartons). En plus il faut Linux...
Citer : Posté le 12/01/2021 18:48 | #
Ok pas de souci j'attendrai de tout manière il faut que je termine la version actuelle de toute manière
Ajouté le 26/07/2021 à 15:01 :
Bonjour, j'aimerai afficher un nombre avec PrintMini(...) sauf que je dois convertir ce nombre en unsigned char* et faire (unsigned char*)3.8f ne marche pas.
Albert Einstein
Citer : Posté le 26/07/2021 15:02 | #
Utilise sprintf :
char str[20];
sprintf(str, "%f", 3.8f);
PrintMini(x, y, (const unsigned char *)str, 0);
Citer : Posté le 26/07/2021 15:27 | #
Merci !
Et juste pour savoir, est-ce qu'il est possible d'afficher un pixel avec une certaine opacité mais que les autres pixel n'ont pas tous la même opacité, et si oui comment svp.
Albert Einstein
Citer : Posté le 26/07/2021 15:28 | #
L'écran est noir et blanc, il n'y a que deux couleurs. Je ne vois pas ce que tu souhaites obtenir.
Citer : Posté le 26/07/2021 15:31 | #
je veux faire un dégradé, je sais qu'on peut modifier l'opacité de l'écran et je voulais savoir s'il était possible de modifié l'opacité d'un pixel en particulier et non pas de l'écran entier
Albert Einstein
Citer : Posté le 26/07/2021 15:33 | #
Ah, le contraste tu veux dire ? Non, on ne peut pas (... sinon ce serait pas un écran noir et blanc :P). Et d'ailleurs même si tu peux changer le contraste dans le programme (je me souviens qu'un jeu d'Aragorn faisait un fondu au blanc comme ça) il est impossible de connaître la valeur initiale donc de le restaurer à la fin.
Tu peux faire des niveaux de gris (de préférence avec gint là, côté SDK c'est très château branlant les niveaux de gris) mais ça ne te donne que 4 couleurs et le rendu laisse parfois à désirer (encore que Redcmd a beaucoup étudié le trucs et trouvé des bonnes pistes d'amélioration).
Citer : Posté le 26/07/2021 15:36 | #
D'accord merci les explications, c'est dommage qu'on puisse pas faire ça facilement
Ajouté le 26/07/2021 à 17:51 :
Mais du coup est-ce qu'il existe l'inverse du sprintf c'est à dire d'avoir ça :
unsigned char* numb = "15";
int nb = ToInt(numb);
nb==15
Albert Einstein
Citer : Posté le 26/07/2021 17:53 | #
Oui, c'est sscanf.
int nb;
sscanf(numb, "%d", &nb);
Oui sinon atoi, plus simplement : nb = atoi("15").
Citer : Posté le 31/07/2021 16:00 | #
Bonjour,
j'ai un problème que je parviens pas à résoudre.
En gros j'aimerai initialisé une class avec un array comme ça
(cette partie là fonctionne)
class Map {
public:
int* data;
int length;
Map(int* data,int length) {
this->length = length;
this->data = data;
}
~Map() {
delete data;
}
};
Donc jusque là ça fonctionne mais, j'aimerai créé plusieurs maps et les initialiser de cette manière :
class AllMaps
{
public:
int IndexMapActu;
Map* MapActu;
Texture** LstTextures;
Camera* camera;
Player* player;
AllMaps() {
IndexMapActu = -1;
LstTextures = LoadTextures();
camera = new Camera;
player = new Player(camera);
}
~AllMaps() {
delete MapActu;
delete LstTextures;
delete camera;
delete player;
}
void LoadMap(int index) {
if (IndexMapActu != -1) {
delete MapActu;
}
IndexMapActu == index;
switch (IndexMapActu)
{
default:
int data[] = { 0, 0, 0, 1, 0, 16, 1, 0, 32, 2, 0, 48, 3, 16, 48, 3, 32, 48, 3, 48, 48, 3, 64, 48, 3, 80, 48, 3, 96, 48, 4, 16, 0, 4, 32, 0, 4, 48, 0, 4, 64, 0, 4, 80, 0, 4, 96, 0, 5, 112, 48, 6, 112, 32, 6, 112, 16, 7, 112, 0 };
MapActu = new Map(data,20);
break;
}
}
private:
};
Avec la fonction LoadMap mais le soucis c'est qu'il y a un problème de mémoire et je pense que c'est à cause de la variable data[] dans LoadMap qui est détruit une fois l'appel terminé et mon objectif c'est de conserver la variable et je ne parviens pas à le faire.
Albert Einstein
Citer : Posté le 31/07/2021 16:03 | #
Cette ligne ne fait probablement pas ce que tu veux
MapActu = new Map(data,20);
Tu ne peux pas faire ça parce que data est une variable locale, donc allouée sur la pile, donc elle n'existe que jusqu'à la fin de l'appel de fonction (au mieux).
Tu dois soit en faire une variable globale soit mettre static devrant, ce qui revient à en faire une variable globale sauf qu'elle n'est pas visible par tout le monde.
Citer : Posté le 31/07/2021 16:09 | #
Je suis trop bête j'avais pas fait attention merci
Et pour le static ça fonctionne en effet merci beaucoup
Ajouté le 31/07/2021 à 17:33 :
Est-ce qu'il y a moyen de faire un split pour un unsigned char* ?
Albert Einstein
Citer : Posté le 31/07/2021 17:41 | #
Pas directement, il faut allouer, copier... c'est un peu chiant (mais obligatoire). Le standard C a très peu de fonctions sur les chaînes de caractères.
Citer : Posté le 31/07/2021 19:23 | #
D'accord mais du coup c'est quoi en gros la commande car, on peut pas avoir la longueur de la chaine de caractère ?
Albert Einstein
Citer : Posté le 31/07/2021 20:12 | #
La fonction strlen() te donne la taille.
Voilà quelques étapes pour couper une chaîne en deux :
Exemple pour un cas où on alloue sur la pile :
const char *str = "HelloWorld";
int n = strlen(str); // = 10
int m = 5; // On coupe après "Hello"
char left[6]; // m+1
char right[6]; // n-m+1
strncpy(left, str, m);
left[m] = 0;
strncpy(right, str+m, n-m);
right[m] = 0;
(On peut faire un poil plus simple pour right mais je préfère montrer le même système deux fois : strncpy() pour copier une sous-chaîne de str, puis un ajoute le NUL à la fin.)
Citer : Posté le 04/11/2021 21:22 | #
Bonjour !
Est-ce qu'il existe une fonction qui permet de concaténer facilement deux unsigned char* ?
Albert Einstein
Citer : Posté le 04/11/2021 21:22 | #
strcat() le fera très bien
Citer : Posté le 04/11/2021 21:23 | #
Ho rapide ! XD
Merci !
Albert Einstein
Citer : Posté le 04/11/2021 21:24 | #
"concaténer"? Que veut dire ce mot?