Le site officiel de la Black Dev Team.
 
AccueilDownloadsTutosFAQRechercherMembresGroupesS'enregistrerConnexion

Partagez | 
 

 [Cour 4] Créer un timer simple

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Zer01ne
Black Dev's Team
avatar

Nombre de messages : 6
Votre Firmware : 4.05 M33-2 PERSO
Votre PSP : Fat
Date d'inscription : 05/07/2008

MessageSujet: [Cour 4] Créer un timer simple   Lun 11 Aoû - 15:31


Salut bande de geek lol! , je vais vous montrer comment realiser un simple timer sans trop vous grater le cerveau. Aller on y vas.

D'abord integrer les Header,Includes Directives de préprocésseur. Nous aurons de besoin des suivantes:
Code:

#include 
#include

Ne pas oublier la ligne pour les informations de votre HB:
Code:

PSP_MODULE_INFO("Simple_Timer", 0, 1, 1);

Definir printf en comme pspDebugScreenPrintf:
Code:

#define printf pspDebugScreenPrintf

Ajouton nos callbacks:
Code:

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {
sceKernelExitGame();
return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {
int cbid;

cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
int thid = 0;

thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}

return thid;
}

Enfin notre timer:
Code:

//La variable time c'est pour le decompte, x c'est pour l'ecran de gauche a droite, y c'est pour l'ecran de haut en bas
int timer(int time, int x, int y)
{
  int i=0;
  for(i=time; i > 0; i--)
  {
pspDebugScreenSetXY(x,y);//Pour choisir ou metre notre timer
  printf("%d",i);//On affiche notre timer
  }
 sceDisplayWaitVblankStart();//Une petite pause pour l'ecran pour eviter que le timer descende a la vitesse de l'éclaire
}

Puit notre main:
Code:

int main()
{
pspDebugScreenInit(); //On initialize l'écran
SetupCallbacks(); //Appel des callbacks

printf("Test D'un Timer\n");
while(1)
{
//Appel de notre timer
timer(10, 1, 1);
}

sceKernelSleepThread();
/*Permet de faire une pause pour que le texte s'affiche. Si on ne met
pas cette ligne, notre programme va afficher le texte une fraction de
seconde et va quitter le programme*/

return 0;
}

Le MAKEFILE:
Code:

TARGET = Timer
OBJS = main.o

CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
 
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = TimerTest

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

Le main.c complet:
Code:

#include
#include

PSP_MODULE_INFO("Simple_Timer", 0, 1, 1);

#define printf pspDebugScreenPrintf

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {
sceKernelExitGame();
return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {
int cbid;

cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
int thid = 0;

thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}

return thid;
}

//La variable time c'est pour le decompte, x c'est pour l'ecran de gauche a droite, y c'est pour l'ecran de haut en bas
int timer(int time, int x, int y)
{
  int i=0;
  for(i=time; i > 0; i--)
  {
pspDebugScreenSetXY(x,y);//Pour choisir ou metre notre timer
  printf("%d",i);//On affiche notre timer
  }
 sceDisplayWaitVblankStart();//Une petite pause pour l'ecran pour eviter que le timer descende a la vitesse de l'éclaire
}

main()
{
pspDebugScreenInit(); //On initialize l'écran
SetupCallbacks(); //Appel des callbacks

printf("Test D'un Timer\n");
while(1)
{
timer(10, 1, 1);//Appel de notre timer
}

sceKernelSleepThread();
/*Permet de faire une pause pour que le texte s'affiche. Si on ne met
pas cette ligne, notre programme va afficher le texte une fraction de
seconde et va quitter le programme*/

return 0;
}

Il ya'a surement des erreurs dans mon code j'ai fait sa de tete.Mais sa vous pemetera de reflechire un peut.
TP:Modifer le timer pour faire en sorte que le timer monte vous verer c'est tres simple
Pour modifier le decompte remplacer timer(10); par timer(votre nombre);

_________________
PSP FAT White avec boutton noir CF Perso 4.05 M33-2+K1.50
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://darkside-dev.powa.fr/zer01ne
spimort
Black Dev's Team
avatar

Nombre de messages : 115
Votre Firmware : 3.93m33
Votre PSP : Fat
Date d'inscription : 05/07/2008

MessageSujet: Re: [Cour 4] Créer un timer simple   Sam 16 Aoû - 1:29

Tres bon tuto, bravo Smile

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
[Cour 4] Créer un timer simple
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Démonstration n°1 de TOONIC: un simple paysage
» IA simple [GM6]
» Timer qui ne veut pas faire son boulot
» Simple question en vu d'un 'déménagement' de forum.
» Cadre simple autour d'une image

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
La Black Dev's Team :: Les tutos :: C/C++-
Sauter vers: