Anuncios Google

PROBLEMAS CON FlipScreen(); Mostrar Una Imagen Encima d Otra

Mirad estoy programando un juego (Parchis) en C y me surge un problema que no consigo resolver. Resulta que mi juego muestra una imagen de fondo (el tablero) y despues si pulsamos X se muestra el dado en el centro de manera aleatoria (1, 2, ... o 6). El problema es que al pulsar X aparece el dado y el fondo negro y si vuelvo a pulsar X aparece el mismo dado y con el fondo del parchis (como debe de ser) seguidamente al volver a pulsar aparece otro dado (diferente) con el fondo negro y como anteriormente, si vuelvo a pulsar aparece este mismo dado y con el fondo del parchis, asi sucesivamente. ¿Como puedo hacer que se muestre el dado y el fondo directamente?
Os pego aqui el codigo para que me digais si sabeis que puede ser:

#include <pspkernel.h> //Librería necesaria siempre
#include <pspdebug.h> //Otra libreria básica
#include <pspctrl.h> //Libreria para el control de botones
#include "LibreriaPNG/graphics.h" //La lib de los gráficos
#include <stdlib.h> //Libreria para la funcion aleatoria
#include <time.h> //Libreria del tiempo

PSP_MODULE_INFO("Imprimir imagen", 0, 1, 0); //Nombre del modulo, kernel o vsh o user, y los dos últimos numeros,numeros de version del software en este caso 1.0
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER); //Le decimos que la apli es en Modo User

#define mostrarImagen blitAlphaImageToScreen
#define salir sceKernelExitGame
#define iniciarPantalla pspDebugScreenInit
#define iniciarGraficos initGraphics

SceCtrlData pad, lastpad; //Define el control del pad
int naleatorio;

Image* tablero_parchis;//Con esto creamos la variable imagen para asignarle una imagen.
Image* dado1;
Image* dado2;
Image* dado3;
Image* dado4;
Image* dado5;
Image* dado6;

void cargar_imagenes()// Creamos una funcion para cargar imagenes.
{
tablero_parchis = loadImage("imagenes/tablero_parchis.png");
dado1 = loadImage("imagenes/dado/1.png");
dado2 = loadImage("imagenes/dado/2.png");
dado3 = loadImage("imagenes/dado/3.png");
dado4 = loadImage("imagenes/dado/4.png");
dado5 = loadImage("imagenes/dado/5.png");
dado6 = loadImage("imagenes/dado/6.png");
}

void mostrar_tablero_parchis()
{
mostrarImagen(0, 0, 480, 272, tablero_parchis, 0, 0);
flipScreen();
}

void control_botones()
{
while(1) //Comenzamos la definicion de botones
{
sceCtrlReadBufferPositive(&pad, 1); //Lectura del Buffer de los botones
if( pad.Buttons != lastpad.Buttons )
{
lastpad = pad;
if (pad.Buttons & PSP_CTRL_CROSS) //Definimos al pulsar el Boton Equis
{
srand(time(NULL));
naleatorio = rand() % 5;

if(naleatorio == 1)
{
mostrarImagen(0, 0, 480, 272, tablero_parchis, 0, 0);
mostrarImagen(0, 0, 19, 19, dado1, 230, 127);
flipScreen();
}
else if(naleatorio == 2)
{
mostrarImagen(0, 0, 480, 272, tablero_parchis, 0, 0);
mostrarImagen(0, 0, 19, 19, dado2, 230, 127);
flipScreen();
}
else if(naleatorio == 3)
{
mostrarImagen(0, 0, 480, 272, tablero_parchis, 0, 0);
mostrarImagen(0, 0, 19, 19, dado3, 230, 127);
flipScreen();
}
else if(naleatorio == 4)
{
mostrarImagen(0, 0, 480, 272, tablero_parchis, 0, 0);
mostrarImagen(0, 0, 19, 19, dado4, 230, 127);
flipScreen();
}
else if(naleatorio == 5)
{
mostrarImagen(0, 0, 480, 272, tablero_parchis, 0, 0);
mostrarImagen(0, 0, 19, 19, dado5, 230, 127);
flipScreen();
}
else if(naleatorio == 0)
{
mostrarImagen(0, 0, 480, 272, tablero_parchis, 0, 0);
mostrarImagen(0, 0, 19, 19, dado6, 230, 127);
flipScreen();
}
}
sceCtrlReadBufferPositive(&pad, 1); //Lectura del Buffer de los botones
if (pad.Buttons & PSP_CTRL_CIRCLE) //Definimos al pulsar el Boton Circulo
{
salir();
}
}
}
}

int main()
{
iniciarPantalla();
iniciarGraficos();
cargar_imagenes(); //Cargamos todas las imagenes definidas en nuestra funcion "cargar_imagenes".
mostrar_tablero_parchis();
control_botones();

return 0;
}//Cerramos main


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Hellooooooooo

Hellooooooooo

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.