He leido varios tutos y demas , pero no me aclaro...
Lo que quiero es tener una imagen , cargarla en la ram , y mostrarla, pero no se como , ¿alguien me ayuda?
Con esto me da error al compilar en blitAlphaImageToScreen:
initGraphics();
loadImage("helloword.png");
blitAlphaImageToScreen(0, 0, 480, 272, 0, 0);
sceKernelDelayThread(4*1000*1000);
disableGraphics();
No se si sera con otra funcion , he provado de diversas formas y nada.
Lo completo seria asi:
*main.c:
#include <pspsdk.h>
#include <pspkernel.h>
#include <psppower.h>
#include <pspctrl.h>
#include <pspdisplay.h>
#include <pspdebug.h>
#include <graphics.h>
#include <png.h>
#include <pspgu.h>
#include <framebuffer.h>
PSP_MODULE_INFO("Helloword",0,1,0);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);
int main()
{
pspDebugScreenInit();
pspDebugScreenClear();
pspDebugScreenPrintf("Pulsa el boton X para ver Hello Word by jesus el mejor");
while (1) // Comenzamos la definicion de botones //
{
SceCtrlData currentPad, lastPad;
sceCtrlReadBufferPositive(¤tPad, 1);
if( currentPad.Buttons != lastPad.Buttons )
{
lastPad = currentPad;
if(currentPad.Buttons & PSP_CTRL_CROSS) // Definimos al pulsar el Boton Equis //
{
pspDebugScreenClear(); // Limpia la Pantalla //
pspDebugScreenPrintf("Cargando Hello Word"); // Imprime texto en Pantalla //
sceKernelDelayThread(2*1000*1000); // Retardo de Tiempo (2 Segundos//
pspDebugScreenClear();
initGraphics();
loadImage("helloword.png");
blitAlphaImageToScreen(0, 0, 480, 272,"helloword.png" 0, 0);
sceKernelDelayThread(4*1000*1000);
disableGraphics();
pspDebugScreenClear();
pspDebugScreenPrintf("Saliendo en 5 segundos jeje");
sceKernelDelayThread(1*1000*1000);
pspDebugScreenClear();
pspDebugScreenPrintf("En 4");
sceKernelDelayThread(1*1000*1000);
pspDebugScreenClear();
pspDebugScreenPrintf("En 3");
sceKernelDelayThread(1*1000*1000);
pspDebugScreenClear();
pspDebugScreenPrintf("En 2");
sceKernelDelayThread(1*1000*1000);
pspDebugScreenClear();
pspDebugScreenPrintf("En 1");
sceKernelDelayThread(1*1000*1000);
sceKernelExitGame();
}
}
}
return 0;
}
*makefile:
TARGET = holamundo
OBJS = main.o graphics.o framebuffer.o
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hola Mundo C by jd v7.5
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
La imagen del error al compilar es esta:
http://www.imaxenes.com/imagen/error_al_compilar1rl86ig.jpg....
:)
Se sale
Ya me funciona , y no me compilaba por el error corregido (gracias .......) y porque me faltaba añadirle cosas a LIBS del makefile , pero ahora la carga bien , y se sale al xmb ¿Por qué?
¿Nadie sabe? :(
:)
Error
Hola , me compila y todo , pero al cargar en la psp sale al principio y al intentar cargar la imagen crashea , mirar a ver si puedeis ayudarme:
*main.c:
#include <pspsdk.h>
#include <pspkernel.h>
#include <psppower.h>
#include <pspctrl.h>
#include <pspdisplay.h>
#include <pspdebug.h>
#include <png.h>
#include <pspgu.h>
#include <framebuffer.h>
#include "graphics.h"
PSP_MODULE_INFO("Helloword",0,1,0);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);
int main()
{
pspDebugScreenInit();
pspDebugScreenClear();
pspDebugScreenPrintf("Pulsa el boton X para ver Hello Word by jesus el mejor");
while (1) // Comenzamos la definicion de botones //
{
SceCtrlData currentPad, lastPad;
sceCtrlReadBufferPositive(¤tPad, 1);
if( currentPad.Buttons != lastPad.Buttons )
{
lastPad = currentPad;
if(currentPad.Buttons & PSP_CTRL_CROSS) // Definimos al pulsar el Boton Equis //
{
pspDebugScreenClear(); // Limpia la Pantalla //
pspDebugScreenPrintf("Cargando Hello Word"); // Imprime texto en Pantalla //
sceKernelDelayThread(2*1000*1000); // Retardo de Tiempo (2 Segundos//
pspDebugScreenClear();
initGraphics();
int Imagen;
Imagen = loadImage("helloword.png");
blitAlphaImageToScreen(0, 0, 480, 272, Imagen, 0, 0);
flipScreen();
sceKernelDelayThread(4*1000*1000);
disableGraphics();
pspDebugScreenClear();
pspDebugScreenPrintf("Saliendo en 5 segundos jeje");
sceKernelDelayThread(1*1000*1000);
pspDebugScreenClear();
pspDebugScreenPrintf("En 4");
sceKernelDelayThread(1*1000*1000);
pspDebugScreenClear();
pspDebugScreenPrintf("En 3");
sceKernelDelayThread(1*1000*1000);
pspDebugScreenClear();
pspDebugScreenPrintf("En 2");
sceKernelDelayThread(1*1000*1000);
pspDebugScreenClear();
pspDebugScreenPrintf("En 1");
sceKernelDelayThread(1*1000*1000);
sceKernelExitGame();
}
}
}
return 0;
}
*makefile:
TARGET = holamundo
OBJS = main.o graphics.o framebuffer.o
INCDIR =
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBDIR =
LDFLAGS =
LIBS = -lpspgu -lpng -lz -lm -lpspdisplay -lpspgum -lfreetype
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hola Mundo C by jd v7.5
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
Al compilarlo me daba pequeños errores...
:)
Código
Debes hacer la corrección que te he indicado... debes declarar un puntero tipo Image, no int. Tal como te lo he puesto en el ejempo:
Image * imagen;
El error
En realidad el error está en estas dos líneas...
loadImage("helloword.png");
blitAlphaImageToScreen(0, 0, 480, 272,"helloword.png" 0, 0);
Debes declarar primeramente:
Image * imagen;
int main()
{
imagen=loadImage("helloword.png");
blitAlphaImageToScreen(0, 0, 480, 272, imagen, 0, 0);
Creo que ya vi el error...
Usaste mal la función para cargar la imagen, debería ser algo asi:
Te recomiendo que aprendas un poco de inglés, porque el compilador te dice donde y que error se ha producido.
Por ejemplo, dice too few arguments to function 'blitAlphaImageToScreen', queriendo decir que te faltaban argumentos para usar la función, y te faltaban porque se te fué una coma ;)
Saludos