Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

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 ··· 33, 34, 35, 36, 37, 38, 39, 40 ··· 46, 47, 48 Suivante
Lephenixnoir Hors ligne Administrateur Points: 22888 Défis: 149 Message

Citer : Posté le 22/06/2014 22:02 | #


Mais ce code, tu ne l'exécutes qu'une fois ? Parce que XPatternA==112, ça arrive pas souvent
Kirafi Hors ligne Membre Points: 2179 Défis: 10 Message

Citer : Posté le 22/06/2014 22:05 | #


oui bien sur par contre je me suis trompé, à la place de -4 théoriquement c'est PatternAff[2][1], je modifie .
et en fait XPatternA c'est les abscisse d'un truc qui se déplace vers la droite
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 Hors ligne Administrateur Points: 22888 Défis: 149 Message

Citer : Posté le 22/06/2014 22:06 | #


Oui, quand ça commence par un X en général c'est pas aux ordonnées.
Sinon ta boucle, elle se termine quand ?
Kirafi Hors ligne Membre Points: 2179 Défis: 10 Message

Citer : Posté le 22/06/2014 22:07 | #


Ben jamais, enfin si quand le perso touche le truc qui se déplace, mais ça bugue dès le premier tour de boucle, enfin, tu sais c'est l'erreur bizarre que j'ai mis en image tout à l'heure
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 Hors ligne Administrateur Points: 22888 Défis: 149 Message

Citer : Posté le 22/06/2014 22:09 | #


Tiens, c'est bizarre ça. L'erreur est-elle provoquée par la copie ou l'affichage ?
Kirafi Hors ligne Membre Points: 2179 Défis: 10 Message

Citer : Posté le 22/06/2014 22:11 | #


Si je remplace "PatternAff[2][1]" par "(-4)" (la valeur contenu), ça marche

Ajouté le 22/06/2014 à 22:29 :
Bon voila l'initialisation des tableaux (+ celui du sprite dessiné on sait jamais )
Cliquez pour découvrir
Cliquez pour recouvrir
const unsigned char Obstacles[3][5]={
    {0x60,0x78,0xf8,0xf0,0x30},
    {0x30,0xf0,0xf8,0x78,0x60},
    {0xd8,0xf8,0x70,0xf8,0xd8}};

const short Pattern1[3][6]={
    {10,5,15,5,15,10},
    {29,35,35,41,41,47},
    {6,0}};
const short Pattern2[3][4]={
    {15,10,0,-5},
    {23,29,47,52},
    {4,-4}};

short PatternAff[3][18];


Ajouté le 22/06/2014 à 22:57 :
Bon, si j'enlève ce bout de code ça marche omg
"for(Z=0;Z!=PatternAff[2][0];Z++)ML_bmp_or(Obstacles[Anim/8],PatternAff[0][Z]+XPatternA,PatternAff[1][Z],5,5);"

Ajouté le 22/06/2014 à 23:07 :
What, j'ai fait quelques tests pour voir ou était le problème, puis j'ai tout remis comme avant et maintenant ça marche
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)
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 28/06/2014 21:52 | #


if (choix == 1 && (data[13] >= data[14]*10)*(data[14]*10))


Je ne comprend pas du tout pourquoi ça ne marche pas
Même si mon data[13] est inférieure à data[14] au carré, ben la condition est quand même validé, je comprends pas pourquoi Vous voyez l'erreur ?
1337
Lephenixnoir Hors ligne Administrateur Points: 22888 Défis: 149 Message

Citer : Posté le 28/06/2014 21:54 | #


Ben, les parenthèses autour de "data[13] > = data[14]*10" forcent ce calcul à être effectué avant, et le membre et donc remplacé par 0 ou 1.
Si c'est 0, toute la condition est infirmée. Si c'est 1, toute la condition est validée tant que data[14] n'est pas nul.
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 28/06/2014 21:59 | #


if (choix == 1 && data[13] >= (data[14]*10*data[14]*10))


Ne marche pas mieux
1337
Lephenixnoir Hors ligne Administrateur Points: 22888 Défis: 149 Message

Citer : Posté le 28/06/2014 21:59 | #


Juste, le carré de data[14] c'est data[14]*data[14], pas data[14]*data[14]*100...
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 28/06/2014 22:04 | #


Oui mais bon.
Admettons que data[14] = 3
Je veux calculer un prix, mais je vais pas faire juste 3² vu que ce serait trop peu chère.
Donc je fais ça pour augmenter le prix.
1337
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 28/06/2014 22:05 | #


Mais alors vérifie que data[13] >= data[14]²*100, et pas juste data[13] >= data[14]²
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 28/06/2014 22:05 | #


Vu que la du coup je me retrouve avec un data[13] négatif puisque mes achats sont validés, je comprends pas pourquoi -_-
1337
Lephenixnoir Hors ligne Administrateur Points: 22888 Défis: 149 Message

Citer : Posté le 28/06/2014 22:06 | #


Mais c'est quoi ce bordel ? Si tu veux augmenter le prix, augmente data[14], sinon le fait que data[13] soit inférieur au carré de data[14] comme tu le dis au début n'a aucun sens...
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 28/06/2014 22:06 | #


@Dodormeur : Dans tous les cas c'est tout le calcul qui est faux, car même quand mon data[13] est négatif, je peux acheter !!
1337
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 28/06/2014 22:07 | #


Explique nous un peu plus ton problème, parce que la...
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 28/06/2014 22:07 | #


Non je ne peux pas augmenter data[14] car c'est le Level de l'amélioration qui est dedans,et en fonction du Level comme ça je fait le prix

Ajouté le 28/06/2014 à 22:09 :
Un peu plus, en voici, en voilà :

http://pastebin.com/A3gkVv4i

PS : Ligne 193
1337
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 29/06/2014 12:03 | #


Tu utilises Bdisp_clearvram alors que tu as monochromelib
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 29/06/2014 15:56 | #


Astuce : oublier les fonctions graphiques de fxlib pour adopter celles de MonochromeLib. Premier geste que je fais quand j'crée un projet. Le gain de vitesse est juste fantastique...
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 10/08/2014 13:46 | #


Bon, j'ai un problème avec une fonction qui est censée retourner la largeur en pixels d'un texte donné :

int taille_pixels(char *texte)
{
    short caracteres[]=
    {'i',0,-2,'n','K','r',0,1,'m','M','N','Q','w','W',0,2,'!'};
    int taille_texte=-1;
    char i,j;
    for(i=0;texte[i];i++)
    {
        taille_texte+=4;
        for(j=0;caracteres[j]!='!';j++)
        {
            if(texte[i]==caracteres[j]);      //bug ici
            {
                while(caracteres[j])j++;
                j++;
                taille_texte+=caracteres[j];
            }
            if(!caracteres[j])j+=2;
        }
    }
    
    return taille_texte;
}


Cette fonction parcourt mon texte lettre par lettre et incrémente la variable taille_texte, et la change à nouveau si le caractère ne fait pas 3 pixels de large.
Lorsque j'envoie un texte de test "22W22", il y a un bug à la ligne indiquée, dès le premier caractère. Le programme considère que le premier "2" à la même valeur que le "i" du tableau de caractères, et entre donc dans la condition.
J'ai essayé d'introduire d'autres variables pour connaître les valeurs de texte et de caracteres[j] à ce moment-là, et j'obtiens... (Value not available)
Bref, je suis coincé.
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 10/08/2014 14:58 | #


Ya une virgule en trop je sais pas si c'est fait exprès a la fin de ta condition.
Sinon combien valent i et j quand ça buggue ?
Et t'es sur que la comparaison d'un short et d'un char est autorisée ?
Précédente 1, 2, 3 ··· 10 ··· 20 ··· 30 ··· 33, 34, 35, 36, 37, 38, 39, 40 ··· 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 v42 © créé par Neuronix et Muelsaco 2004 - 2023 | Il y a 63 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