Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/575bf5e3c62051f9ae76828e61b15223/web/modules/Forum/blok.php on line 88
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/575bf5e3c62051f9ae76828e61b15223/web/modules/Forum/blok.php on line 88
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
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");
}