:: Navigation
:: Libère ta PSP
Les Downgrades (PSP Fat)

Version 2.80 vers 1.50 (Team Noobz)
Version 3.03 vers 1.50 (Team Noobz)
Version 3.50 vers 1.50 (Team Noobz)
Toute version vers 1.50 (Team Noobz)

Custom Firmware (PSP Fat)

Installation 3.52M33-4 (Dark_Alex)
Installation 4.01 M33-2 (Dark_Alex)

Custom Firmware (PSP Slim & Lite)

Installation 3.60 M33 (Dark-Alex)
Installation 4.01 M33-2 (Dark_Alex)

Despertar del Cementerio (Toutes PSP)

Toutes PSP vers 3.90M33-3 (Dark_Alex)


:: Publicité
:: Publicité


  [C] 2 : Faire un premier programme
Catégorie : Tutoriaux -> Programmation sur PSP
Ajouté le : 01.03.2008 22:25
Auteur : Baptiste
Lectures : 1821
Commentaires et aides sur l'article [C] 2 : Faire un premier programme (7)
Note global : 6.8/10 (11 votants)

Après avoir installer un espace de développement sur votre ordinateur, il est temps de passer à la programmation pure.

Pour commencer, on va faire un premier programme assez basique (assez logique ).

Pour cela on va utiliser précisément 3 fonctions pour faire un ... Testeur de touche !

Je vous explique le principe, on arrive sur un écran noir où l'utilisateur doit appuyer sur ses touches ce qui aura pour effet d'afficher tel texte sur l'écran. Comme un exemple vaut toujours mieux qu'un long discourt :

J'appuie sur la touche Croix, le programme affiche sur l'écran: "Vous pressez actuellement la touche Croix".

On va donc utiliser :

  • Une boucle "WHILE"
  • Les callback (voir la définition en cliquant ici)
  • La fonction de la PSP pour écrire du texte
  • La fonction qui gére les touches

Tout ceci dans un fichier principal main.c

 

  • Une boucle "WHILE" qui tournera en boucle (sans rire ) et qui affichera tel texte pour telle touche pressée (=appuyée).
  • Les callback c'est ce qui est affiché lorsque l'on appuie sur la touche HOME pendant un jeu, cela permet de revenir vers le menu de la PSP (XMB). Comme une image vaut toujours mieux qu'un long discours :

 

 

  • La fonction de la PSP pour écrire du texte c'est :
    pspDebugScreenPrintf
    En C c'est
     Printf
       mais sur la PSP c'est la fonction ci-dessus, c'est comme ça
  •  La fonction qui gère les touches sur la PSP c'est :
SceCtrlData pad 

Maintenant on a toutes les clefs en main pour commencer le programme !

 

Les librairies à inclure :


#include 
On inclut la librairie  "pspkernel.h" dans le programme
#include 
On inclut  "pspdebug.h"
#include 
On inclut  "pspctrl.h"

 

Les attributions des fonctions :

 

#define printf pspDebugScreenPrintf
On attribue printf à pspDebugScreenPrintf
Donc on écrira printf au lieu de pspDebugScreenPrintf

Note : il y a toujours une tabulation entre les deux fonctions en question ( ici entre "printf "et "pspDebugScreenPrintf" )

 

Les informations du programme donné au compilateur :

 

PSP_MODULE_INFO("monprogramme", 0, 1, 1); Ne pas mettre d'espace entre les " ", ne pas changer au mieux, cela importe peu
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
 On ne change rien

 

Les prototypes qui préparent la PSP aux fonctions :

 

int exit_callback(int arg1, int arg2, void *common);
prototype callback ligne 1
int CallbackThread(SceSize args, void *argp);
prototype callback ligne 2
int SetupCallbacks(void);
prototype callback ligne 3

 

On ouvre la fonction principale "main" :

J'espère que vous savez faire ça quand même

 

int main()
{
main = principale donc fonction principale ; int = -2 147 483 648 à 2 147 483 647

 

 

On initialise les fonctions et variables :

 

pspDebugScreenInit();
Initialise le mode debug
SetupCallbacks();
Initialise les callback
SceCtrlData pad;
Initalise le controle des touches

 

Création de la boucle WHILE  :

Ca aussi vous devez savoir faire ;)

 

while (1)

{

On donne la valeur 1 pour que la boucle continue

(en numérique 1 = Vrai ; 0 = Faux)

sceCtrlReadBufferPositive (&pad, 1);

Il s'agit d'une fonction de la librairie "pspctrl.h".

Elle nous permet d'utiliser la reconnaissance des touches

 

Création de condtion avec IF, else ... :

On va créer plusieurs conditions à la suite avec les différentes touches, cela pour effet pendant l'exécution du programme d'afficher à l'écran tel texte pour telle touche appuyée, d'où le principe du testeur de touche ...

Remarque : X représente l'axe des abscisses et Y l'axe des ordonnées (si vous ne vous rappelez pas de vos cours de maths, >> cliquez ici << ).

 

 

if (pad.Buttons & PSP_CTRL_CROSS)
	{
	pspDebugScreenSetXY(1,2);
	printf("Vous appuyez actuellement sur la touche Croix");
	}

 

Que l'on peut traduire par :

si (touche pressée et qu'il sagit de Croix)
	{
	le texte sera affiché à : (1,2);
	écrire : "Vous appuyez actuellement sur la touche Croix");
	}

C'est aussi simple que cela, on a fait pour Croix, on va maintenant faire pour les autres touches :

if (pad.Buttons & PSP_CTRL_CIRCLE)
	{
	pspDebugScreenSetXY(1,4);
	printf("Vous appuyez actuellement sur la touche Rond");
	}
 
	if (pad.Buttons & PSP_CTRL_SQUARE)
	{
	pspDebugScreenSetXY(1,6);
	printf("Vous appuyez actuellement sur la touche Carre");
	}	
 
	if (pad.Buttons & PSP_CTRL_TRIANGLE)
	{
	pspDebugScreenSetXY(1,8);
	printf("Vous appuyez actuellement sur la touche Triangle");
	} 
if (pad.Buttons & PSP_CTRL_SQUARE) { pspDebugScreenSetXY(1,8); printf("Vous appuyez actuellement sur la touche Carre"); }

  

:: Chat
0 utilisateur est connecté sur le chat !

:: Sondage
Nos News vous semblent-elles suffisament précises ?
 Oui, elles sont parfaites
 Oui, mais je ne comprends pas tout desfois
 Non, il manque des détails
 Non, je n'ai rien compris à tout ça

 
Autres Sondages
:: Syndication

Suivez PSP Ground 
grâce aux fils RSS 2.0

Les 20 dernières news
Les 20 derniers articles
Les 20 derniers téléchargements
Les 20 derniers liens
Les 20 dernières images
Les 20 derniers sujets

:: Publicité