Solevis
23/05/2007, 16h54
Bonjour a tous:) ,
Venant de découvrir la fabuleuse librairie Oslib, je me suis lancé dans la création d'un jeu pour Psp.
Le jeu se nomme PSP falldown et sera un portage du célèbre jeu des calculettes Ti.
Le but étant d'éviter qu'une bille se retrouve coincer en haut de l'écran.
C'est plus facile avec un exemple : Falldown en flash (http://www.albinoblacksheep.com/flash/falldown2.php)
Mais arriver a quelques lignes de codes, je me trouve face a un problème. Impossible de faire constamment descendre la bille.
Donc je voulais savoir s il existait des Timers sous Oslib, ou alors même en C. De façon a ce que j'ai
Timer(30)
{
bille->y -= 4
}
Je voulais également savoir on pouvait scroller une image et non pas une map.
J'espère que vous pourrez m'aider.
Merci d'avance :fleur:
PS : Voici mon Code complet (pas grands choses mais ca pourra peut etre vous aider)
//##############################
// Falldown by Solevis
//version developpement
//La librairie principale OSLib
#include <oslib/oslib.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
//les callbacks
PSP_MODULE_INFO("OSLib Sample", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
//definition des pointeurs vers nos images
OSL_IMAGE *fond, *bille;
int main()
{
int x=0, y=0 ;
int compteur = NULL;
int continuer = 1;
//Initialisation de la librairie
oslInit(0);
//Initialisation du mode graphique
oslInitGfx(OSL_PF_8888, 1);
//definition de la transparence
oslSetTransparentColor(RGB(255,0,255));
//chargement de nos images (oui, le "loading" :p)
fond = oslLoadImageFile("Background.png", OSL_IN_RAM, OSL_PF_5551);
bille = oslLoadImageFile("bille.png", OSL_IN_RAM, OSL_PF_5551);
//plus de transparence
oslDisableTransparentColor();
//vérification
if (!fond || !bille)
oslDebug("Impossible de charger un ou plusieurs fichiers. Verifiez que tous les fichiers sont bien copiés dans le répertoire du jeu.");
//boucle principale
while (!osl_quit)
{
//Permet de dessiner
oslStartDrawing();
oslCls();
//Lit les touches
oslReadKeys();
//deplace le sprite de la bille
if (osl_keys->held.left) bille->x -= 4;
if (osl_keys->held.right) bille->x += 4;
if (osl_keys->held.start) oslQuit();;
bille->y -= 4;
//dessine nos images
oslDrawImage(fond);
oslDrawImage(bille);
//Fin du dessin
oslEndDrawing();
//Synchronise l'écran
oslSyncFrame();
}
//on quitte l'application
oslEndGfx();
oslQuit();
return 0;
}
Venant de découvrir la fabuleuse librairie Oslib, je me suis lancé dans la création d'un jeu pour Psp.
Le jeu se nomme PSP falldown et sera un portage du célèbre jeu des calculettes Ti.
Le but étant d'éviter qu'une bille se retrouve coincer en haut de l'écran.
C'est plus facile avec un exemple : Falldown en flash (http://www.albinoblacksheep.com/flash/falldown2.php)
Mais arriver a quelques lignes de codes, je me trouve face a un problème. Impossible de faire constamment descendre la bille.
Donc je voulais savoir s il existait des Timers sous Oslib, ou alors même en C. De façon a ce que j'ai
Timer(30)
{
bille->y -= 4
}
Je voulais également savoir on pouvait scroller une image et non pas une map.
J'espère que vous pourrez m'aider.
Merci d'avance :fleur:
PS : Voici mon Code complet (pas grands choses mais ca pourra peut etre vous aider)
//##############################
// Falldown by Solevis
//version developpement
//La librairie principale OSLib
#include <oslib/oslib.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
//les callbacks
PSP_MODULE_INFO("OSLib Sample", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
//definition des pointeurs vers nos images
OSL_IMAGE *fond, *bille;
int main()
{
int x=0, y=0 ;
int compteur = NULL;
int continuer = 1;
//Initialisation de la librairie
oslInit(0);
//Initialisation du mode graphique
oslInitGfx(OSL_PF_8888, 1);
//definition de la transparence
oslSetTransparentColor(RGB(255,0,255));
//chargement de nos images (oui, le "loading" :p)
fond = oslLoadImageFile("Background.png", OSL_IN_RAM, OSL_PF_5551);
bille = oslLoadImageFile("bille.png", OSL_IN_RAM, OSL_PF_5551);
//plus de transparence
oslDisableTransparentColor();
//vérification
if (!fond || !bille)
oslDebug("Impossible de charger un ou plusieurs fichiers. Verifiez que tous les fichiers sont bien copiés dans le répertoire du jeu.");
//boucle principale
while (!osl_quit)
{
//Permet de dessiner
oslStartDrawing();
oslCls();
//Lit les touches
oslReadKeys();
//deplace le sprite de la bille
if (osl_keys->held.left) bille->x -= 4;
if (osl_keys->held.right) bille->x += 4;
if (osl_keys->held.start) oslQuit();;
bille->y -= 4;
//dessine nos images
oslDrawImage(fond);
oslDrawImage(bille);
//Fin du dessin
oslEndDrawing();
//Synchronise l'écran
oslSyncFrame();
}
//on quitte l'application
oslEndGfx();
oslQuit();
return 0;
}