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 - Autres questions


Index du Forum » Autres questions » **Le SDK pour fx-9860/Graph85** Topic officiel
Matronix Hors ligne Ancien administrateur Points: 6058 Défis: 82 Message

**Le SDK pour fx-9860/Graph85** Topic officiel

Posté le 18/07/2007 15:08

Vu la multitude de topics sur le SDK de la 85, j'ai décidé d'en faire un seul et unique, où l'on posera nos problèmes et explications sur ce même topic, et non pas sur 50, par souci de clareté et de facilité.

Des nouveautés ? Des problèmes ? Des idées ?
Exposez les ici !

Voici une liste de commandes commencées par Muelsaco. N'hésitez pas à rajouter vos commandes dans le topic je les rajouterai pour en faire profiter tout le monde. Merci.

// Locate X,Y,"Texte"
:arrow: locate(x,y); Print("Texte");

// Text X,Y,"Texte"
:arrow: PrintMini(x,y,"Texte",0);

// F-Line x1,y1,x2,y2
:arrow: Bdisp_DrawLineVRAM(x1,y1,x2,y2);

// Tracer une ligne blanche
:arrow: Bdisp_ClearLineVRAM(x1,y1,x2,y2);

// PxlOn x,y & PxlOff x,y
:arrow: Bdisp_SetPoint_VRAM(x,y,<couleur>)
<couleur> : 0 pour le blanc, 1 pour le noir

// Cls
:arrow: Bdisp_AllClr_DDVRAM();

// Actualiser l'écran
:arrow: Bdisp_PutDisp_DD();
Fonction très importante. Elle permet d'afficher une image tracée virtuellement dans la VRAM. Toute image doit d'abord être dessinée dans la VRAM puis affichée à l'écran. Vous ne verrez donc pas votre image s'afficher tant que vous n'aurez pas appelé Bdisp_PutDisp_DD(). À noter que les fonctions GetKey() et Print() l'appellent automatiquement.

While <exp1>
<code>
WhileEnd
:arrow:
while(<exp1>)
{
  <code>
}

// StoPict x
:arrow: SaveDisp(x);
x variant de 1 à 3 uniquement.

// RclPict x
:arrow: RestoreDisp(x);
  x variant de 1 à 3 uniquement.

// Ouvrir un popup (comme les erreurs syntaxe, etc)
:arrow: PopUpWin(<taille>);
  <taille> : de 1 à 8.


Rappels sur les variables globales : Source

* Les variables globales sont à utiliser avec précaution, puisqu'elles créent des liens invisibles entre les fonctions. La modularité d'un programme peut en souffrir et le programmeur risque de perdre la vue d'ensemble.
* Il faut faire attention à ne pas cacher involontairement des variables globales par des variables locales du même nom.
* Le codex de la programmation défensive nous conseille d'écrire nos programmes aussi 'localement' que possible.

L'utilisation de variables globales est jusitifiée, si

* Plusieurs fonctions qui ne s'appellent pas ont besoin des mêmes variables, ou
* Plusieurs fonctions d'un programme ont besoin du même ensemble de variables. Ce serait alors trop encombrant de passer toutes les variables comme paramètres d'une fonction à l'autre.


Précédente 1, 2, 3 ··· 10 ··· 20 ··· 30 ··· 40 ··· 42, 43, 44, 45, 46, 47, 48 Suivante
Lephenixnoir En ligne Administrateur Points: 24556 Défis: 170 Message

Citer : Posté le 22/01/2016 21:58 | #


Tu peux faire ceci :
const unsigned char items[];

void draw_item(...) {
    ...
}

const unsigned char items[] = {
    ...
};

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

Citer : Posté le 22/01/2016 22:05 | #


Hum il me met "Missing array size" à la première ligne "const unsigned char items[];" (et à toutes les lignes du même genre).

Ajouté le 22/01/2016 à 22:11 :
Arpès tant que je suis dans les déclarations foireuses, ce genre de truc ne compile pas :
for(int i; i < Variable; i++){ ... }

iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir En ligne Administrateur Points: 24556 Défis: 170 Message

Citer : Posté le 22/01/2016 22:13 | #


Kirafi a écrit :
Hum il me met "Missing array size" à la première ligne "const unsigned char items[];" (et à toutes les lignes du même genre).

Rooh mais utilisez gcc. Bon essaie avec extern, sinon je ne vois pas.

Kirafi a écrit :
Après tant que je suis dans les déclarations foireuses, ce genre de truc ne compile pas :

Normal, c'est du C99 et le SDK est bloqué en C89. Il faut déclarer i avant.

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

Citer : Posté le 22/01/2016 22:17 | #


Bon okay ça marche... mais j'ai perdu 30 fps :aie2: ...
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir En ligne Administrateur Points: 24556 Défis: 170 Message

Citer : Posté le 22/01/2016 22:22 | #


Kirafi a écrit :
Bon okay ça marche... mais j'ai perdu 30 fps ...

Euh attends quoi ?

Donc maintenant tu as des doubles tableaux en static et des fonctions d'affichage.
Avant tu avais des tableaux simples et des fonctions d'affichages... ? Et t'as perdu 30 fps ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kirafi Hors ligne Membre Points: 2180 Défis: 10 Message

Citer : Posté le 22/01/2016 22:24 | #


Hum avant j'avais des doubles tableaux déclarés seulement dans les fonctions qui les utilisais, et là j'ai une déclaration en extern avant les fonctions et la déclaration en static après les fonctions. Et j'ai perdu 30 fps
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir En ligne Administrateur Points: 24556 Défis: 170 Message

Citer : Posté le 22/01/2016 22:32 | #


T'as pas mis les données dans la déclaration en extern ?

Bon ben sinon mais les grosses déclarations dans les fonctions et vire les extern... mais je comprends pas ce que fait ce compilateur...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kirafi Hors ligne Membre Points: 2180 Défis: 10 Message

Citer : Posté le 22/01/2016 22:37 | #


Ouai finalement je refais comme avant mais c'est vrai que là du coups bah je gagne 30 fps ...
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir En ligne Administrateur Points: 24556 Défis: 170 Message

Citer : Posté le 22/01/2016 22:55 | #


Ben en soit la modification la plus importante c'est le fait d'utiliser des doubles tableaux. Mais techniquement je ne comprends pas comment il peut gérer ça différemment alors que fondamentalement c'est la même chose.

C'est peut-être une bizarrerie du compilateur du SDK, je testerai avec gcc pour voir s'il y a une différence.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kirafi Hors ligne Membre Points: 2180 Défis: 10 Message

Citer : Posté le 22/01/2016 23:04 | #


Ouaip , alors après 30 fps c'est un peu exagéré parce que j'ai pris l'ancienne valeur que j'avais relevé, puis j'avais rajouté des trucs entre temps, enfin dans tout les cas mnt je tourne à 100, alors qu'avec les extern etc, à 90.
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 05/02/2016 23:08 | #


J'ai des tableaux contenant des valeurs correspondant à des sprites.
Pour les afficher, j'utilise la fonction ML_bmp_8_or().
J'ai plusieurs tableau de niveaux appelés Map1, Map2 ... et j'ai comme variable "map", qui contient un char du numéro de la map à afficher.
Mes sprites s'appellent Object_#.
# correspond à la valeur correspondant au sprite sélectionner.

Est-il possible de faire quelque chose comme ça : ML_bmp_8_or("Object_"+("Map"+"map")[VarI][VarJ], VarX, VarY) ?
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 06/02/2016 11:23 | #


Ouhla ! C'est censé faire quoi ce truc horrible ? "Object_"+("Map"+"map")[VarI][VarJ],
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 06/02/2016 12:56 | #


En fait, voici le code que j'aimerais optimiser :
char Map1[8][16]={
    3,[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]5[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]8[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]8[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]8[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]8[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]8[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]49[/maroon],[maroon]8[/maroon],
    9,[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]11[/maroon]}

[purple]char[/purple] Map2[8][16]={
    3,[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]4[/maroon],[maroon]5[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]7[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]8[/maroon],
    6,[maroon]24[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]1[/maroon],[maroon]2[/maroon],[maroon]8[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]31[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]8[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]8[/maroon],
    6,[maroon]31[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]1[/maroon],[maroon]2[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]7[/maroon],[maroon]8[/maroon],
    6,[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]7[/maroon],[maroon]0[/maroon],[maroon]0[/maroon],[maroon]49[/maroon],[maroon]8[/maroon],
    9,[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]11[/maroon]}


void printLvl(map){

    [purple]char[/purple] VarI;
    [purple]char[/purple] VarJ;

    [purple]char[/purple] level

    [b][blue]for[/blue][/b](VarI=[maroon]0[/maroon], VarI<=[maroon]15[/maroon], VarI++){
        [b][blue]for[/blue][/b](VarJ=[maroon]0[/maroon], VarJ<=[maroon]7[/maroon], VarJ++){
            switch(map){
                case 1:
                    switch(Map1[VarJ][VarI]){
                        case 1:
                            ML_bmp_8_or(Object_1,VarI*8+1,VarJ*8+1);
                        [b][blue]break[/blue][/b];
                        case 2:
                            ML_bmp_8_or(Object_2,VarI*8+1,VarJ*8+1);
                        [b][blue]break[/blue][/b];
                        ...
                    }
                case 2:
                    switch(Map2[VarJ][VarI]){
                        case 1:
                            ML_bmp_8_or(Object_1,VarI*8+1,VarJ*8+1);
                        [b][blue]break[/blue][/b];
                        case 2:
                            ML_bmp_8_or(Object_2,VarI*8+1,VarJ*8+1);
                        [b][blue]break[/blue][/b];
                        ...
                    }

                case 3:
                ...
            }
        }
    }
}


J'aimerais bien éviter tous les switch.

Si quelqu'un sait comment faire, cela me ferait gagner beaucoup de temps et réduirait le poids de mon programme.

Ajouté le 06/02/2016 à 14:02 :
L'intérêt est également que je souhaiterais réaliser un éditeur de niveau. Par conséquent le nombre de niveau est indéfini, et je ne peux pas continuer mon switch jusqu'à +infini.
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Lephenixnoir En ligne Administrateur Points: 24556 Défis: 170 Message

Citer : Posté le 06/02/2016 15:13 | #


En fait tu veux accéder à une variable par son nom, c'est ça ? C'est impossible. Utilise un tableau plutôt.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 06/02/2016 15:13 | #


Eh, les tableaux ça sert à ça.

Exemple rapide à adapter en fonction de tes besoins

char tileset[][] = {{0xAA, 0xBB, …}, {0x12, 0x34, …}, …}; // Code des sprites du tileset, dans un tableau 2D


// ——— Si tes sprites ne font pas la même taille, le mieux est de faire ceci :

char sprite_1[] = {…};
char sprite_2[] = {…};


char *sprites[] = {sprite_1, sprite_2, …}; // On déclare un tableau de pointeurs sur les sprites
// Y'a moyen que le SDK n'apprécie pas la déclaration via les pointeurs, si ça compile pas faut juste faire
char *sprites[10];
sprites[0] = sprite_1;

// —————



// Passons à la récupération des données :
// On a un tableau 2D de n lignes et p colonnes
// Parcourons-le et affichons les sprites
// Je ne gère pas le scrolling avec cet exemple, mais c'est très facilement adaptable en ajoutant une condition sur i et j, ainsi que deux variables correspondant au scroll

for(i = 0; i < n; i++) for(j = 0; j < p; j++)
    ML_bmp_8_or([red]sprites[[/red] [blue]Map[ i ] [ j ][/blue] [red]][/red], j * 8, i * 8 );
// On affiche le sprite du tableau de sprites correspondant au bloc de notre tilemap

ML_display_vram();

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 06/02/2016 15:45 | #


Merci beaucoup, je cherchais un moyen de contourner le problème, mais je ne cherchais pas du tout dans la bonne voie.
Je vais tester le code tout de suite !

Ajouté le 06/02/2016 à 21:49 :
Du coup, j'ai fais ça :
int *Sprites[100]={Object_0, Object_1, Object_2, Object_3, Object_4, Object_5, Object_6, Object_7, Object_8, Object_9, Object_10, Object_11, Object_12, Object_13, Object_14, Object_15, Object_16, Object_17, Object_18, Object_19, Object_20, Object_21, Object_22, Object_23, Object_24, Object_25, Object_26, Object_27, Object_28, Object_29, Object_30, Object_31, Object_32, Object_33, Object_34, Object_35, Object_36, Object_37, Object_38, Object_39, Object_40, Object_41, Object_42, Object_43, Object_44, Object_45, Object_46, Object_47, Object_48, Object_49, Object_g0, Object_g1, Object_g2, Object_g3, Object_g4, Object_g5, Object_g6, Object_g7, Object_g8, Object_g9, Object_g10, Object_g11, Object_g12, Object_g13, Object_g14, Object_g15, Object_g16, Object_g17, Object_g18, Object_g19, Object_g20, Object_g21, Object_g22, Object_g23, Object_g24, Object_g25, Object_g26, Object_g27, Object_g28, Object_g29, Object_g30, Object_g31, Object_g32, Object_g33, Object_g34, Object_g35, Object_g36, Object_g37, Object_g38, Object_g39, Object_g40, Object_g41, Object_g42, Object_g43, Object_g44, Object_g45, Object_g46, Object_g47, Object_g48, Object_g49};

void afficherMap(char map){

    char i;
    char j;

    for(i=0; i<=15; i++){
        for(j=0; j<=7; j++){
            switch(map){
                case 1:
                    ML_bmp_8_or(Sprites[ Map1[ i ] [ j ]+50*gris ], j * 8, i * 8 );
                break;
                case 2:
                    ML_bmp_8_or(Sprites[ Map2[ i ] [ j ]+50*gris  ], j * 8, i * 8 );
                break;
            }
        }
    }
}

Ca compile, mais j'ai ce message qui apparait 13 fois : "Illegal pointer assignement".
De plus l'add-in ne marche plus dans l'émulateur. L'add-in crash.
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Lephenixnoir En ligne Administrateur Points: 24556 Défis: 170 Message

Citer : Posté le 06/02/2016 22:23 | #


N'utilise pas des char. Utilise des int. Non, ça ne permet pas d'économiser de la mémoire. Pas le moindre bit en l'occurrence.

Est-ce que tous les pointeurs que tu as utilisés sont constants ? Et pense à déclarer le tableau en const int *.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kirafi Hors ligne Membre Points: 2180 Défis: 10 Message

Citer : Posté le 06/02/2016 23:15 | #


Ah ouai mais non, avec cette méthode ça affiche "Should be constant" j'avais eu le même problème, et tu ne peux rien y faire, c'est dù au compilateur du SDK qui est un peu trop vieux quoi ...
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir En ligne Administrateur Points: 24556 Défis: 170 Message

Citer : Posté le 07/02/2016 08:11 | #


De toute façon ce genre de code ne compile même pas avec gcc à cause de la non-constance des pointeurs >_<
Utilisez des doubles tableaux ou bien déclarez ça hors du scope global, mais vous pouvez pas initialiser des tableaux avec des variables.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 16/02/2016 19:13 | #


J'ai un énorme problème.
J'utilise la fonction suivante : angle=atan((y0i-yObj)/(x0i-xObj)).
Or, la fonction ne me donne pas la valeur espérée.
Je me suis renseigné, et le problème vient du fait que la calculatrice fait l'arrondi à l'entier le plus proche de (y0i-yObj)/(x0i-xObj) avant de l'envoyer dans la fonction atan(). Par conséquent, je n'ai pas du tout les bonnes valeurs.
Je rencontre le même problème avec cos() et sin().

Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
-florian66- Hors ligne Ancien rédacteur Points: 2384 Défis: 20 Message

Citer : Posté le 16/02/2016 19:56 | #


Tu castes par double ou float
In Arch, I trust ! And you ?
Précédente 1, 2, 3 ··· 10 ··· 20 ··· 30 ··· 40 ··· 42, 43, 44, 45, 46, 47, 48 Suivante

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