Posté le 04/07/2014 17:33
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 115 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 04/07/2014 17:34 | #
Il est inutile de faire de la copie.
D'abord, est-ce que l'espace à gauche du rectangle est utilisé ? Ce facteur pourrait simplifier l'algorithme -- et rendre le défilement plus agréable.
Citer : Posté le 04/07/2014 17:41 | #
J'ai pas trop compris ce que tu voulais dire
En gros je voudrais ça :
[Le truc a af] Défilement=0, petit temps de latence [e truc a aff] [ truc a affi] [truc a affic] ... [c a afficher] ici le défilement se réinitialise après un petit temps de latence, puis on recommence.
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)
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)
Citer : Posté le 04/07/2014 17:49 | #
Ok, j'avais pas compris ça.
Alors tu auras besoin de copie, mais c'est assez facile.
Voilà un code d'exemple, les seules valeurs que tu dois adapter sont celles que j'ai utilisées en define.
#define X 0
#define Y 0
const char *MaChaine[]={ "Le truc que je veux afficher" };
char buffer[LENGTH+1];
int i;
for(i=0;i<strlen(*MaChaine)-LENGTH;i++)
{
strncpy(buffer,*MaChaine+i,LENGTH);
buffer[LENGTH] = 0;
Txt_Text(buffer,X,Y,TXT_MINISD,TXT_OR);
GetKey(&key);
}
Citer : Posté le 04/07/2014 18:10 | #
Ok, merci Lephénixnoir, mais serait-ce possible de le mettre dans une boucle while ?
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)
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)
Citer : Posté le 04/07/2014 18:14 | #
Ben, tu sais une boucle for c'est juste une boucle while réduite.
#define X 0
#define Y 0
const char *MaChaine[]={ "Le truc que je veux afficher" };
char buffer[LENGTH+1];
int i = 0:
while(i<strlen(*MaChaine)-LENGTH)
{
strncpy(buffer,*MaChaine+i,LENGTH);
buffer[LENGTH] = 0;
Txt_Text(buffer,X,Y,TXT_MINISD,TXT_OR);
GetKey(&key);
i++;
}
Citer : Posté le 04/07/2014 18:18 | #
...Désolé mais je me suis mal fait comprendre
Je veut dire que le texte défile et que lorsque le défilement arrive au bout de la chaine, on recommence comme ça :
"abcde"
[abc] [bcd] [cde] temps de latence [abc] [bcd] [cde] temps de latence etc...
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)
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)
Citer : Posté le 04/07/2014 18:27 | #
Ah, ok. Je te mets donc des Sleep().
#define X 0
#define Y 0
const char *MaChaine[]={ "Le truc que je veux afficher" };
char buffer[LENGTH+1];
int i;
while(IsKeyUp(30002))
{
for(i=0;i<strlen(*MaChaine)-LENGTH;i++)
{
strncpy(buffer,*MaChaine+i,LENGTH);
buffer[LENGTH] = 0;
Txt_Text(buffer,X,Y,TXT_MINISD,TXT_OR);
Bdisp_PutDisp_DD();
Sleep(100);
}
Sleep(900); // + 100
}
Citer : Posté le 04/07/2014 18:41 | #
bon, j'ai trafiqué l'autre fonction (pas celle avec le sleep) et ça marche, car en fait, pendant le défilement je voulais d'autre actions (c'est un peu à l'arrache )
Defilement=0;
while(!key_down(31)){ //Attend l'appuis de "EXE"
ML_rectangle(64,43,126,61,0,0,0); //Effaçage de la 3ème zone d'écriture
if(AffTxt>=0 && AffTxt<1000)ML_bmp_or(ImTexteSucces[Z/3],65,44,61,7); //Dessin du succè obtenu
if(AffTxt>=1000)ML_bmp_or(ImExe,87,44,17,7); //Dessin de "EXE"
strncpy(buffer,TextesSucces[Z]+Defilement,15);
buffer[16]=0;
Txt_Text(buffer,66,54,TXT_MINISD,TXT_OR);
AffTxt++;
if(AffTxt==1500)AffTxt=0;
if(!(AffTxt%100))Defilement++;
if(Defilement>strlen(TextesSucces[Z])-15)Defilement=0;
ML_display_vram(); //Affichage du message de succè
}
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)
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)
Citer : Posté le 04/07/2014 18:45 | #
Est-ce que sans te casser la tête, tu pourrais me montrer ce que ça donne du coup ?
Citer : Posté le 04/07/2014 19:00 | #
Voici un
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)
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)
Citer : Posté le 04/07/2014 19:03 | #
Merci. Au début, je pensais que tu voulais faire un scrolling au pixel (ce qui est également faisable, quoique plus difficilement).
Ça rend plutôt bien, c'est cool.
Citer : Posté le 04/07/2014 19:06 | #
Ben merci Lephénixnoir, au pixel serrait pas mal, mais c'est pas moi qui chercherais comment faire (quoique je viens d'avoir une idée ). Maintenant je fais les latences pour avoir le temps de lire quand même .
PS : c'est la Dernière étape avant le test final de débogage après, c'est le post sur le site.
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)
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)
Citer : Posté le 04/07/2014 19:08 | #
En fait, il y a un problème avec le scrolling au pixel.
Le problème, c'est que la libText va toujours afficher le premier caractère en entier. Comme il devra disparaître progressivement, il faudra que tu effaces le début gênant ; mais pour cela, il te faut au moins 3-1 = 2 pixels "constants" à gauche du dernier pixel dans lequel le texte du scroll appraîtra.
Est-ce le cas ?
Citer : Posté le 04/07/2014 19:12 | #
Hum, je pensais à la même chose ... et oui, j'ai même 3 pixels constant à gauche .
Mais après pour pas s'embêter il en faudrais 4 à droite (si tu comprend ce que je veux dire) et il se trouve que la droite importe peux donc ça passerait .
Mais là j'ai la flemme, mais si tu veux me le faire, pas de soucis .
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)
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)
Citer : Posté le 04/07/2014 19:16 | #
Ben, il suffit de remplacer la commande Txt_Text() par une boucle à 4 itérations.
Là comme ça, je ne sais pas si ça va fonctionner -- de tout façon ça n'effacera rien -- mais tu peux toujours essayer.
AffTxt=0;
Defilement=0;
while(!key_down(31)){ //Attend l'appuis de "EXE"
ML_rectangle(64,43,126,61,0,0,0); //Effaçage de la 3ème zone d'écriture
if(AffTxt>=0 && AffTxt<1000)ML_bmp_or(ImTexteSucces[Z/3],65,44,61,7); //Dessin du succè obtenu
if(AffTxt>=1000)ML_bmp_or(ImExe,87,44,17,7); //Dessin de "EXE"
strncpy(buffer,TextesSucces[Z]+Defilement,15);
buffer[16]=0;
for(j=0;j<4;j++) Txt_Text(buffer,66-j,54,TXT_MINISD,TXT_OR);
AffTxt++;
if(AffTxt==1500)AffTxt=0;
if(!(AffTxt%100))Defilement++;
if(Defilement>strlen(TextesSucces[Z])-15)Defilement=0;
ML_display_vram(); //Affichage du message de succè
}
Citer : Posté le 04/07/2014 19:17 | #
Ouai, ton truc pourrais fonctionner mais ce serait trop rapide
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)
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)
Citer : Posté le 04/07/2014 19:23 | #
Pas moyen de mettre un Sleep() je suppose ?
Bon... je vais y réfléchir, mais je pense que je sais comment faire.