Seuls les membres ayant 30 points peuvent parler sur le 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 ··· 7, 8, 9, 10, 11, 12, 13 ··· 20 ··· 30 ··· 40 ··· 46, 47, 48 Suivante
Dark storm En ligne Membre d'honneur Points: 11040 Défis: 176 Message

Citer : Posté le 23/09/2012 11:04 | # | Fichier joint


en reprenant mon prog, je me suis apperçu que c'est la fonction ML_bmp_and qui bugue précisément ici (voir P.J)

J'ai essayé de recompiler avec une autre version de ML, rien n'y fait...

Ajouté le 23/09/2012 à 11:18 :
bon, après quelques tests, je m\'apperçois que


[green]// Initialisation des bitmaps[/green]

*unsigned char *positionsJoueurPos[NB_POSITIONS];
    unsigned char *positionsJoueurNeg[NB_POSITIONS];
    
    const unsigned char pn01[] = {0xFF, 0xFF, [...], 0xC0};
    const unsigned char pp01[] = {0x00, 0x38, [...], 0x00};
    
    //Sleep(2000);
    
    positionsJoueurPos[0] = pp01;
    positionsJoueurNeg[0] = pn01;

    [...]

    positionsJoueurPos[7] = pp08;
    positionsJoueurNeg[7] = pn08;
    
    //animDebut();
    
    do [green]// BOUCLE PRINCIPALE[/green]
    {
        score++; [green]// augmentation du score[/green]
        
        ML_clear_vram();
        
        dessineFondEcran(score);
        
        positionAffiche ++;
        if(positionAffiche > 7) positionAffiche = 0;
        [green]// incrementation de la position du joueur[/green]
        ML_bmp_or(positionsJoueurPos[positionAffiche], 20, 21, 18, 24); [green]// toute seule, cette fonction marche[/green]

ML_bmp_and(positionsJoueurNeg[positionAffiche], 20, 21, 18, 24); [green]Par contre, celle là pose problème...[/green]
        
        ML_display_vram();
        
        Sleep(RAPIDITE_DEBUT);
        
    }while(1);

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 23/09/2012 11:23 | #


Qu'est-ce que tu entends par "pose problème"
J'utilise régulièrement ces fonctions et je n'ai jamais rencontré aucun problème.
Dark storm En ligne Membre d'honneur Points: 11040 Défis: 176 Message

Citer : Posté le 23/09/2012 11:35 | #


omg WTF ????????

Je n'ai rien touché (juste commenté/décommenté la fonction) et l'erreur est partie...

Par contre, j'ai une bande blanche qui s'affiche à droite de mon bitmap...


Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 23/09/2012 11:38 | #


C'est peut être parce que la largeur de ton bitmap n'est pas un multiple de 8.
Fais des test.
Dark storm En ligne Membre d'honneur Points: 11040 Défis: 176 Message

Citer : Posté le 23/09/2012 11:40 | #


peut être...
Je n'ai pas le tps de faire des tests actuellement, mais ML a tjr fonctionné jusque là...
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 23/09/2012 13:32 | #


Si l'EBR a disparu en recompilant le code, c'est que l'erreur venait du SDK.
Pour la bande blanche, soit ton bitmap est mal encodé, soit ça vient du code. Essaye de l'afficher seul, en dehors de tout contexte. ML n'a aucun problème pour gérer les largeurs non multiples de 8.
Dodormeur Hors ligne Ancien rédacteur Points: 3964 Défis: 82 Message

Citer : Posté le 23/09/2012 13:38 | #


fais gaffe aussi, si une ligne de code est trop grande, le sdk supprime la fin (c'est tres embetant d'ailleurs
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 !
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 23/09/2012 15:51 | #


Peut être c'est ça la cause de mes bugs de tiles...
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Dodormeur Hors ligne Ancien rédacteur Points: 3964 Défis: 82 Message

Citer : Posté le 23/09/2012 15:56 | #


j'ai deja eu plein de fois le probleme (surtout sur les tile un peu grand (1/6 de l'ecran)
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 !
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 23/09/2012 18:09 | #


Vous utilisez l'éditeur intégré au SDK ?
Je vous conseil d'utiliser un vrai éditeur de code, comme Notepad++ par exemple.
Dark storm En ligne Membre d'honneur Points: 11040 Défis: 176 Message

Citer : Posté le 23/09/2012 18:13 | # | Fichier joint


C'est sur
Par contre, quoi que je fasse, j'ai toujours ma bande blanche à coté du bitmap...

Edit: le code utilisé est le même que ci-dessus...
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 23/09/2012 19:20 | #


Oh la vache, il y a une erreur de ma part dans ML_bmp_and. Je vais corriger ça au plus vite.
Il n'y a pas d'erreur dans ML_bmp_and_cl.
Dark storm En ligne Membre d'honneur Points: 11040 Défis: 176 Message

Citer : Posté le 23/09/2012 19:23 | #


ok, merci
tu nous dis une fois que c'est corrigé
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Dodormeur Hors ligne Ancien rédacteur Points: 3964 Défis: 82 Message

Citer : Posté le 23/09/2012 19:24 | #


c'etait quoi cette erreur?

Ajouté le 23/09/2012 à 21:00 :
j\'ai une question : pour la gestion du hasard, j\'utilise getTicks() , mais je me demande si je fais 50 fois rand() de suite , cela me donnera t il des nombres vraiment aleatoire ,ou suivant une suite logique?
et si oui, comment faire pour que non?
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 !
Ziqumu Hors ligne Membre d'honneur Points: 3048 Défis: 9 Message

Citer : Posté le 23/09/2012 23:14 | #


J'ai jamais fait de tests, mais je pense pas. En fait la fonction getTicks donnent la graine de la fonction aléatoire, mais rien ne dit que si tu lui donne 1 puis 2 les resultats se suivent puisqu'il il y a un traitement derriere qui change en fonction des nombres, même très proche.
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 24/09/2012 13:01 | #


Pour les nombres aléatoires en C, je te conseille de consulter cette page.

Je ne peux pas mettre de lien, les crochets provoquent un bug avec la balise bbcode.
Ziqumu Hors ligne Membre d'honneur Points: 3048 Défis: 9 Message

Citer : Posté le 24/09/2012 16:44 | #


Enlève les crochet, ca n'aura aucune influence sur le lien :
http://www.planet-casio.com/Fr/forums/topic10132-1-Fx-CG-10-20-Fonctions-utiles.html#65985
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 24/09/2012 17:40 | #


Ok, merci.
Dodormeur Hors ligne Ancien rédacteur Points: 3964 Défis: 82 Message

Citer : Posté le 24/09/2012 18:10 | #


merci
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 !
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 24/09/2012 23:35 | #


Ces fonctions sont pratiques pour la Prizm, mais sur le SDK G85 on a les fonctions standards rand et srand.
Si tu envois toujours le même entier à srand, rand te sortira toujours la même suite de nombres oui. Mais sachant que getTicks peut retourner 11059200 (24*3600*128) valeurs différentes, tu ne retomberas jamais 2 fois sur la même suite
Getkey Hors ligne Membre Points: 232 Défis: 0 Message

Citer : Posté le 25/09/2012 21:23 | #


Comment on change la valeur maximal du générateur de nombre aléatoire ? (rien trouvé dans la doc...)

Parce que ça, ça ne marche pas
const int RAND_MAX = 128;


Edit: je suis débile, c'est juste au dessus je crois...
Getkey est en cours de chargement. Veuillez patienter...


Mes jeux en pause...
Cliquer pour enrouler
Précédente 1, 2, 3 ··· 7, 8, 9, 10, 11, 12, 13 ··· 20 ··· 30 ··· 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
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
: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 - 2020 | Il y a 89 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