1

Salut tout le monde

Alors je suis arrivé lorsque j'appui sur le bouton select a faire un message et j'aimerais savoir comment je fais pour effacer ce message en appuyant par exemple sur start smile


voila merci

stele

2

si t ds une boucle, arette simplement d'afficher ton txt,
sinon efface le en blitant par dessus.
et la le mec il le pécho par le bras et il lui dit '

3

j'ai fait un gptextout pour affiche mon message mais je vois pas comment arrete d'afficher mon message

4

oups ^^'

ben soit ton prog est structuré comme ca :


while(1)
{
effacel'ecran() ;
gptxtout() ;
flipScreen() ;
}


si c comme ca, met un flag pour dire si tu va blitter ou non ton txt, change la valeur du flag qt tu lit les touches

sinon, affiche un rectangle, une image, ce que tu veut ... sur ton txt pour l'effacer.
et la le mec il le pécho par le bras et il lui dit '

5

Voila ma source j'ai fait comme ca:

#include <stdlib.h>

#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpfont.h"
#include "gpmm.h"
#include "gpstdio.h"


/* global variable */
GPDRAWSURFACE gpDraw;


void GpMain(void * arg)
{
int k=0;

GpLcdSurfaceGet(&gpDraw,0);
while ( 1 )
{
k = GpKeyGet();
GpTextOut(NULL,&gpDraw,10,10,(char*)"appui sur select",0xe0);
if ( k == GPC_VK_SELECT )
GpTextOut(NULL,&gpDraw,50,50,(char*)"select",0xe0);
}

GpSurfaceSet(&gpDraw);

if ( !(GPC_LCD_ON_BIT & GpLcdStatusGet()) )
GpLcdEnable();
}

6

soit rajoute du code ds ton while pour tt le temps, effacer et flipper l'ecran, donc ton msg sera affiché juste qt select en enfoncé
sinon, fait comme ca :

if ( k == GPC_VK_SELECT ) GpTextOut(NULL,&gpDraw,50,50,(char*)"select",0xe0);
else gprectfill(...) ; // pour effacer soit l'ecran, soit la zone ou etait affiché ton txt

ou bien , fait ton gprectfill, qt c start qui est enfoncé ...
et la le mec il le pécho par le bras et il lui dit '

7

Oki le gprectfill je vois bien comment faire mais c'est pour flipper je viens d'essaye ca compile mais sous l'emulateur ca plante donc j'ai du faire une connerie :

#include <stdlib.h>

#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpfont.h"
#include "gpmm.h"
#include "gpstdio.h"


/* global variable */
GPDRAWSURFACE gpDraw[2];

int nflip;


void GpMain(void * arg)
{
int k=0;
int l=0;



GpLcdSurfaceGet(&gpDraw[nflip],0);

nflip = 1;
while ( 1 )
{
k = GpKeyGet();
GpTextOut(NULL,&gpDraw[nflip],10,10,(char*)"appui sur select",0xe0);
if ( k == GPC_VK_SELECT )
GpTextOut(NULL,&gpDraw[nflip],50,50,(char*)"select",0xe0);
if ( l == GPC_VK_START)
{
GpSurfaceFlip(&gpDraw[nflip++]);
nflip &= 0x01;
}

GpSurfaceSet(&gpDraw[nflip]);

if ( !(GPC_LCD_ON_BIT & GpLcdStatusGet()) )
GpLcdEnable();
}

8


je c pas du tout, trop longtemps que g pas utilisé le sdk

si ca peut t'aier, je fait comme ca ds gdl :

void init_screen(char nb_bit)
{
bbp = nb_bit ;
GpGraphicModeSet(bbp,NULL) ;

GpLcdSurfaceGet(&gpDraw[0],0) ;
GpLcdSurfaceGet(&gpDraw[1],1) ;

nflip=0 ;
GpSurfaceFlip(&gpDraw[0]);
GpLcdEnable() ;
}

void flip_screen(void)
{
GpSurfaceFlip( &gpDraw[nflip]);
nflip ^= 1;
}


toi ta qu'un seul GpLcdSurfaceGet, c ptet ca smile
et la le mec il le pécho par le bras et il lui dit '

9

Merci jve essaye en regardant ce que tu viens de mettre smile

Je viens de faire une modif maintenant ça ce lance dans l'emulateur mais en faite j'ai viré le l'evenement qui se passe qud j'appuyais sur le bouton start en gros maintenant ca m'affiche mon message qud je reste appuyer sur select lol c'est pas trop ce que je voulais faire mais bon .... faut que je comprenne un peu

10

Bon pour ceux que ca interesse voici la source de ce que je viens de faire :

- ca affiche apuyer sur select qud on appui sur select cela affiche et lorsqu'on appui sur start ca efface le message select

voila :

#include <stdlib.h>

#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpfont.h"
#include "gpmm.h"
#include "gpstdio.h"


/* global variable */
GPDRAWSURFACE gpDraw[2];

int nflip;


void GpMain(void * arg)
{
int k=0;
int i;

for ( i = 0 ; i < 2 ; i++)
{
GpLcdSurfaceGet(&gpDraw[i], i);
}

GpSurfaceSet(&gpDraw[0]);

nflip = 1;

while ( 1 )
{

/*GpRectFill(NULL, &gpDraw[nflip], 0, 0,320, 240, 0xff);*/

k = GpKeyGet();
GpTextOut(NULL,&gpDraw[nflip],10,10,(char*)"appui sur select",0xe0);
if ( k == GPC_VK_SELECT )
GpTextOut(NULL,&gpDraw[nflip],50,50,(char*)"select",0xe0);

GpSurfaceFlip(&gpDraw[nflip++]);
nflip &= 0x01;
if ( k == GPC_VK_START)
{
GpRectFill(NULL, &gpDraw[nflip], 0, 0,320, 240, 0xff);
GpTextOut(NULL,&gpDraw[nflip],10,10,(char*)"appui sur select",0xe0);
}
}

}

11

Pour ceux qui veulent essaye ma source :

moi j'arrive a compile avec devkitadanve et gp32ide ca marche trop bien , par contre si vous utilisé des sources deja faites pensez a regarde si il y a des commentaires styles (//commenaires) ca fait plante devkitadvance et ca compile pas voila

cordialement stele

12

Devkitadvance est configuré pour ne reconnaitre que les commentaires C par défaut il me semble ... tu peux donc transformer

//commentaire

en

/* commentaire */

13

Moi je travaille avec DevKitAdv et j'ai aucun pb pour les commentaires //
Par contre stele ton code est vachement compliqué. Il a même une erreur au niveau de GpLcdSurfaceGet().
Voilà ma solution:

#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpfont.h"
#include "gpmm.h"
#include "gpstdio.h"


/* global variable */
GPDRAWSURFACE gpDraw[2];
int nflip;

void GpMain(void * arg)
{
int k=0;
int select=0;

GpLcdSurfaceGet(&gpDraw[0], 0);
GpLcdSurfaceGet(&gpDraw[1], 1);
GpSurfaceSet(&gpDraw[0]);
nflip = 1;

while ( 1 )
{
GpRectFill(NULL, &gpDraw[nflip], 0, 0 ,320, 240, 0xff);
GpTextOut(NULL, &gpDraw[nflip], 10, 10, (char*) "appui sur select", 0xe0);
if ( select )
GpTextOut(NULL, &gpDraw[nflip], 50, 50, (char*) "select", 0xe0);

GpSurfaceFlip(&gpDraw[nflip++]);
nflip &= 0x01;

k = GpKeyGet();
if ( k & GPC_VK_SELECT )
select = 1;
if ( k & GPC_VK_START )
select = 0;
}

}



14

Au fait, d'aprés ce que j'ai lu sur GP32 Xtreme il faut enlever l'option -ansi dans le makefile pour pouvoir utiliser les commentaires du style //