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

Partagez
 

 [Cour 4] Créer un timer simple

Aller en bas 
AuteurMessage
Zer01ne
Black Dev's Team
Zer01ne

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

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

[Cour 4] Créer un timer simple News10

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
spimort

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

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

Tres bon tuto, bravo Smile

_________________
[Cour 4] Créer un timer simple 227
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
[Cour 4] Créer un timer simple
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» (1361) Alerte "surveiller les réponses de ce sujet" reçue par un simple membre lors d'un déplacement + fusion sur sujet "invisible" (droits modérateurs)
» Personnalisation de Profil (Simple)
» Probleme simple: AFFICHAGE SOUS CATEGORIES
» Accordéon "simple"
» Passation des droits fondateur vers un simple membre

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: