dudas en c para psp

bueno soy nuevo en esto de programar en c , entes programe en un lenguaje orientado a la creación de videojuegos 2d y e empezado a programar c para psp y la verdad tengo muchas dudas espero que por favor me ayudeis un poco XD .

primero en la sentencia "printf" como poner los parametros para colocar el texto o mover lo por la pantalla o si hay que usar un sentencia diferente.

segundo como cargar las imágenes ya que en el tutorial que seguí, el ejemplo no me funciona es [triston] ,este:
#include <pspdisplay.h>
#include <pspctrl.h>
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspgu.h>
#include <png.h>
#include <stdio.h>
#include "graphics.h"

#define printf pspDebugScreenPrintf
#define MAX(X, Y) ((X) > (Y) ? (X) : (Y))
PSP_MODULE_INFO("Image Display Program", 0, 1, 1);

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {
sceKernelExitGame();
return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {
int cbid;

cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
int thid = 0;

thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}

return thid;
}
int main() {
char buffer[200];
Image* ourImage;
pspDebugScreenInit();

SetupCallbacks();
initGraphics();
sprintf(buffer, "kappa64.png");
ourImage = loadImage(buffer);
if (!ourImage) {
//Image load failed
printf("fallo al cargar la imagen\n");
} else {
int x = 0;
int y = 0;
sceDisplayWaitVblankStart();
while (x < 480) {
while (y < 272) {
blitAlphaImageToScreen(0 ,0 ,32 , 32, ourImage, x, y);
y += 32;
}
x += 32;
y = 0;
}
flipScreen();
}
sceKernelSleepThread();
return 0;
}
que falla? y tengo que escribir un un tercio de este tochaco una y otra vez para cargar una imagen? }:/ :-?

gracias de antemano XD
Buenas:
La función printf es para enviar texto vía salida estándar. Esto es, el modo consola. Normalmente no se puede ir cambiando de sitio o moviendo lo que envías por printf. Imagínalo como una máquina de escribir sin tecla de mover el carro hacia atrás :)
Qué te falla del código que has puesto? ourimage carga bien?
Para cargar la imagen, no es necesario que "spritfees" el nombre literal al buffer, puedes llamar directamente a loadImage con el literal. Y para controlar los errores puedes hacerte una funcioncilla tal que así (también le puedes pasar literales):

Image* cargaImagen(char* nombreFichero)
{
Image* nuevaImagen = loadImage(nombreFichero);
if(!nuevaImagen)
printf("No se ha podido cargar %s\n", nombrefichero);
return nuevaImagen;
}

Si quieres el código mas limpito, haz funcioncillas que te hagan más fácil la vida :)
2 respuestas