Forum Casio - Autres questions


Index du Forum » Autres questions » **Le SDK pour fx-9860/Graph85** Topic officiel
MatronixHors ligneAncien administrateurPoints: 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.


Pages : Précédente1, 2, 3, 4, 5, 6, 7, 8, 9, ... 47Suivante
PurobazHors ligneMembre d'honneurPoints: 2690 Défis: 110 Message

Citer : Posté le 07/04/2012 13:06 | #


En fait j'ai testé d'autres chiffres, et ça marche.
Mais je ne sais pas si c'est très "sécurité".

Ajouté le 08/04/2012 à 23:40 :
Comment peut on faire pour \"surécrire\" dans un fichier ?

Ajouté le 14/04/2012 à 20:17 :
C\'est bon, j\'ai la solution pour les fichiers.

Par contre est-ce qu\'il existe une fonction pour retourner au menu principal.
I'll be back !
pour plus de fun
mes programmes fun
de technique
mes projets
et de Swag
les projets que je soutiens
AdbookHors ligneMembrePoints: 1050 Défis: 19 Message

Citer : Posté le 14/04/2012 21:28 | #


Non.
Il n'y a que la fonction GetKey qui fait retourner au menu lorsqu'on appuie sur la touche [MENU] justement :\
--------------------------------------------------

Calculatrice: Graph 35+ (modifiée 75) + graph 75
Dead Labs est sorti ! N'hésitez pas à l'essayer et à voter !!!
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message

Citer : Posté le 15/04/2012 01:17 | #


Il n'existe pas à ma connaissance d'implémentation de la fonction exit. On avait eu un petit débat à ce sujet ici.

Comme dit Adbook, tu peux utiliser GetKey, et même utiliser le syscall PutKey pour faire comme si MENU avait été enfoncée.

Ajouté le 15/04/2012 à 01:36 :
J'en avais marre de toujours zapper les messages "fusionnés", maintenant ils seront signalé comme les nouveaux messages
DodormeurHors ligneAncien rédacteurPoints: 3928 Défis: 82 Message

Citer : Posté le 20/04/2012 17:50 | #


cette question a surement deja ete posee, mais je la pose quand mem (la flemme de chercher dans 33 page de ce forum )
il y a-t-il moyen d'executer un programme en basic dans un add-ins? et si oui, comment?
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 !
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message

Citer : Posté le 20/04/2012 17:59 | #


Oui et non. On peut lancer l'application PRGM (et simuler l'appui de plusieurs touches pour qu'un programme soit lancé), mais à partir de ce moment là, notre application perd le contrôle des évènements.
DodormeurHors ligneAncien rédacteurPoints: 3928 Défis: 82 Message

Citer : Posté le 20/04/2012 18:02 | #


donc en clair, l'add-in lance le menu prgm, et apres, c'est a ll'utilisateur de se débrouillé?
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 !
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message

Citer : Posté le 20/04/2012 18:08 | #


Quoi que, je pense à un truc. Il serait possible de démarrer un timer avant de lancer un programme Basic (comme je fais dans PRGM2), puis reprendre la main grâce à ce timer à un évènement donné, par exemple le changement de valeur d'une variable Basic.
Donc si, ce que tu demandes est faisable. Mais l'utilisateur pourra toujours interrompre le programme Basic.
C'est pour faire quoi exactement ?
DodormeurHors ligneAncien rédacteurPoints: 3928 Défis: 82 Message

Citer : Posté le 20/04/2012 18:25 | #


a la base, je voulais faire un genre de 2 os , et pour les jeux dedans, j'aurais aime pouvoir utiliser les programmes que j'avait deja fait en basic. mais a la limite, il suffirait de mettre un choix "quitter" dans le menu de base et de changer une variable pour revenir vers l'add-in?
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 !
Dark stormHors ligneMembre d'honneurPoints: 10765 Défis: 174 Message

Citer : Posté le 22/04/2012 17:20 | #


je cherche à afficher les fps, j'ai consulté les sources de Man vs Rocks, etc, mais j'ai pas tout compris...
Qqun pour m'expliquer le principe du calcul ?
Thanks
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message

Citer : Posté le 22/04/2012 18:36 | #


@Dodormeur, oui, c'est ça.

@Dark Storm : Tu fais une variable "fps" contenant le nombre d'image/secondes qu'il y a eu pendant la secondes précédente. Une autre "fps_count" qui servira de compteur, pour compter les fps dans la seconde actuelle.
Le syscall RTC_GetTicks retourne le nombre de "ticks" actuel, sachant qu'il y a 128 ticks par seconde, et que ce compteur est réinitialisé à minuit (heure du RTC de la calculette). Il te faut donc une variable "time" pour mémoriser le moment du début de la seconde courante.
[green]// initialisation[/green]
fps = fps_count = time = 0;

[green]// compteur, à exécuter à chaque rafraîchissement de l'écran[/green]
if( RTC_GetTicks() - time >= 128) [green]// si le temps écoulé est supérieur ou égal à 128 ticks (1 seconde)[/green]
{
    fps = fps_count; [green]// on mémorise le nombre de frame qu'il y a eu pendant la seconde qui vient de s'écouler[/green]
    fps_count = 1; [green]// on ré-initialise le compteur[/green]
    time = RTC_GetTicks(); [green]// on sauvegarde le temps du début de la seconde actuelle[/green]
} else fps_count++; [green]//une image de plus[/green]

Il te suffit ensuite d'afficher la valeur de la variable "fps".
Dark stormHors ligneMembre d'honneurPoints: 10765 Défis: 174 Message

Citer : Posté le 22/04/2012 18:49 | #


je vois...
Merci pour l'astuce

Ajouté le 22/04/2012 à 19:11 :
dans quel fichier se trouve le syscall ?
j\'ai essayé avec les syscalls que tu fournit dans ton tuto, mais il ne s\'y trouve pas...
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message

Citer : Posté le 22/04/2012 22:58 | #


C'est le syscall 0x3B
(le fichier time.c dans Man vs Rock sert à l'appeler)
Dark stormHors ligneMembre d'honneurPoints: 10765 Défis: 174 Message

Citer : Posté le 23/04/2012 07:02 | #


ok, thanks
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
BtlHors ligneAncien modérateurPoints: 3879 Défis: 107 Message

Citer : Posté le 25/04/2012 21:41 | #


Quand j'affiche un bmp et que ses coordonnées ne sont pas des nombres entiers, j'obtiens une ligne qui clignote au dessus du sprite.

Y a-t-il un moyen pour remédier à cela ou bien ses coordonnées doivent être entières...
Un excellent tuto video qui vous explique comment transférer des fichiers de l'ordinateur vers la calculatrice et vice versa ma chaine youtube
mes jeux
mes jeux

Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games

Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
EiyeronHors ligneAncien modérateurPoints: 5513 Défis: 57 Message

Citer : Posté le 25/04/2012 21:45 | #


afficher_sprite((int)x,(int)y);
Change la fonction comme tu vuex, masi garde le cast (type)
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message

Citer : Posté le 26/04/2012 00:06 | #


Avec une fonction de MonochromeLib ?
Si oui, elles demandent des entiers, donc le cast sera fait automatiquement, et l'erreur d'affichage ne peut pas venir de là.
Dark stormHors ligneMembre d'honneurPoints: 10765 Défis: 174 Message

Citer : Posté le 29/04/2012 18:10 | # | Fichier joint


Est-ce normal qu'en utilisant Monochromelib et tiles creator j'obtienne ceci (ci-joint) lors de l'affichage ?

Ajouté le 29/04/2012 à 18:11 :
je me demandai si ca peut venir de l\'hexadecimal
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
EiyeronHors ligneAncien modérateurPoints: 5513 Défis: 57 Message

Citer : Posté le 29/04/2012 19:13 | #


Quelles sont les dimensions du sprite? As-tu bien pensé à mettre les dimension du sprite, et non de l'écran?
Dark stormHors ligneMembre d'honneurPoints: 10765 Défis: 174 Message

Citer : Posté le 29/04/2012 19:17 | #


ben oui, c'est du 128*64, pour un menu
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message

Citer : Posté le 29/04/2012 19:33 | #


Dark storm a écrit :

Est-ce normal qu'en utilisant Monochromelib et sprite maker j'obtienne ceci (ci-joint) lors de l'affichage ?

Si ton image ressemble à ça oui, sinon c'est que tu t'es planté quelque part. Soit dans l'encodage du bitmap, soit dans l'utilisation de la fonction d'affichage.
PurobazHors ligneMembre d'honneurPoints: 2690 Défis: 110 Message

Citer : Posté le 29/04/2012 20:08 | #


Dark storm a écrit :

ben oui, c'est du 128*64, pour un menu

Il faut alors mieux utiliser memcpy
I'll be back !
pour plus de fun
mes programmes fun
de technique
mes projets
et de Swag
les projets que je soutiens
Pages : Précédente1, 2, 3, 4, 5, 6, 7, 8, 9, ... 47Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 50 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