Anuncios Google

Duda en C [os.message]

Buenas amigos acabo de iniciarme en C y tengo una duda.

Como muchos sabreis exite una función en LuaDev llamada os.message().

Vale, pues necesito que me digan como usarla en C y si puede ser un pequeño ejemplo.

Gracias y un saludo


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.


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.
Imagen de jorge_97

By Jorge_97

Bueno muchisimas gracias a todos.

Pero al ver el panorama que hay en C para PSP voy a dejarlo un poco de lado y me voy a pasar a C para PC, que es lo que estaba haciendo.

Muchas gracias a todos de nuevo y ya retomaré C para PSP en otro momento ;)

Salu2


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de jorge_97

By Jorge_97

Jjajaj bueno ya dejo C para PSP xD

Me retiro de la programacion al menos un mes...

veremos a ver si consigo desviciarme ;)

Salu2

Imagen de sting18

Es bueno no meterte tan de

Es bueno no meterte tan de lleno como tu lo avias estado haciendo, ya que te aburririas pronto xD, esto es un jobi disfrutalo y veras como te sale bien si asi hacen un buen trabajo imagina bien instruido xD, sabes que cuantas conmigo para lo que sea jorge tanto en C como en LUA tu decide que quieres hacer y aqui estamos para ayudarte que descanses estos dias ;).


Imagen de jorge_97

By Jorge_97

Es cierto la verdad es que en apenas 2 días intenté aprender todo C de golpe de todos modos hoy termino de programar en LUA y C durante al menos un mes... son vacaciones. Además, PSP Explorer fue un trabajo muy duro y agotador...

Espero que de sus frutos

Salu2 Sting!!!!!!!!!!


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Dioni0396

os.message en C con las oslib mod:

#include <pspkernel.h>
 
#include <pspnet.h>
 
#include <pspnet_inet.h>
 
#include <pspnet_apctl.h>
 
#include <oslib/oslib.h>
 
 
 
PSP_MODULE_INFO("Dialog Test", 0, 1, 0);
 
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
 
PSP_HEAP_SIZE_KB(12*1024);
 
 
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
// Globals:
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
int runningFlag = 1;
 
 
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
// Callbacks:
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
/* Exit callback */
 
int exit_callback(int arg1, int arg2, void *common) {
 
    runningFlag = 0;
 
    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, PSP_THREAD_ATTR_USER, 0);
 
    if(thid >= 0)
 
        sceKernelStartThread(thid, 0, 0);
 
    return thid;
 
}
 
 
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
// Init OSLib:
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
int initOSLib(){
 
    oslInit(0);
 
    oslInitGfx(OSL_PF_8888, 1);
 
    oslInitAudio();
 
    oslSetQuitOnLoadFailure(1);
 
    oslSetKeyAutorepeatInit(40);
 
    oslSetKeyAutorepeatInterval(10);
 
    return 0;
 
}
 
 
 
 
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
// Main:
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
int main(){
 
    int skip = 0;
 
    char message[100] = "";
 
    int dialog = OSL_DIALOG_NONE;
 
    SetupCallbacks();
 
 
 
    //Init network (for net conf dialog):
 
    oslNetInit();
 
 
 
    initOSLib();
 
    oslIntraFontInit(INTRAFONT_CACHE_MED);
 
 
 
    //Loads image:
 
    OSL_IMAGE *bkg = oslLoadImageFilePNG("bkg.png", OSL_IN_RAM | OSL_SWIZZLED, OSL_PF_8888);
 
 
 
    //Load font:
 
    OSL_FONT *font = oslLoadFontFile("flash0:/font/ltn0.pgf");
 
    oslSetFont(font);
 
 
 
    while(runningFlag && !osl_quit){
 
        if (!skip){
 
            oslStartDrawing();
 
            oslDrawImageXY(bkg, 0, 0);
 
            oslDrawString(30, 50, "Press X to see a message dialog.");
 
            oslDrawString(30, 70, "Press [] to see an error dialog.");
 
            oslDrawString(30, 90, "Press O to see the net conf dialog.");
 
            oslDrawString(30, 150, "Press /\\ to quit.");
 
 
 
            oslDrawString(30, 200, message);
 
 
 
            dialog = oslGetDialogType();
 
            if (dialog){
 
                oslDrawDialog();
 
                if (oslGetDialogStatus() == PSP_UTILITY_DIALOG_NONE){
 
                    if (oslDialogGetResult() == OSL_DIALOG_CANCEL)
 
                        sprintf(message, "Cancel");
 
                    else if (dialog == OSL_DIALOG_MESSAGE){
 
                        int button = oslGetDialogButtonPressed();
 
                        if (button == PSP_UTILITY_MSGDIALOG_RESULT_YES)
 
                            sprintf(message, "You pressed YES");
 
                        else if (button == PSP_UTILITY_MSGDIALOG_RESULT_NO)
 
                            sprintf(message, "You pressed NO");
 
                    }
 
                    oslEndDialog();
 
                }
 
            }
 
            oslEndDrawing();
 
        }
 
 
 
        if (dialog == OSL_DIALOG_NONE){
 
            oslReadKeys();
 
            if (osl_keys->pressed.triangle){
 
                runningFlag = 0;
 
            }else if (osl_keys->pressed.cross){
 
                oslInitMessageDialog("Test message dialog", 1);
 
                memset(message, 0, sizeof(message));
 
            }else if (osl_keys->pressed.square){
 
                oslInitErrorDialog(0x80020001);
 
                memset(message, 0, sizeof(message));
 
            }else if (osl_keys->pressed.circle){
 
                oslInitNetDialog();
 
                memset(message, 0, sizeof(message));
 
            }
 
        }
 
 
 
        oslEndFrame();
 
        skip = oslSyncFrame();
 
    }
 
    //Quit OSL:
 
    oslEndGfx();
 
    oslQuit();
 
    oslNetTerm();
 
 
 
    sceKernelExitGame();
 
    return 0;
 
 
 
}

Esta sacado de los samples, todavia no lo domino del todo como para ponerte un buen ejemplo.

Imagen de User170294

No es por ser quisquilloso

No es por ser quisquilloso pero con oslInit(0); todo lo que sea llamar a callbackas para hacer funcionar el botón Home sobra.

Buen ejemplo. Saludos.


Imagen de Dioni0396

Como he dicho estaba en los samples

yo aqui no he tocado nada....

Imagen de User170294

Umm... ¿De que carpeta

Umm... ¿De que carpeta sacaste los samples?¿Hay muchos más?

Saludos Dioni.

Imagen de AitorDB

By Aitor

Imagen de Dioni0396

+1

ahi esta todo

Pero debes tener las oslib mod (Si tienes linux el tuto de sting ya las trae predeterminadamente)

Imagen de User170294

Ya no uso linux...

Naa prefiero Windows por varios motivos después de probar Linux Mint, Ubuntu, Windows Vista, Windows 7 y Windows XP. Prefiero los 3 Windows(XP, Vista y 7) por encima de Linux Mint y Ubuntu.

Me parece que es mucho más comodo programar en cualquier lenguaje bajo Windows, al igual que compilar y limpiar archivos sobrantes. Además, no solo soy programador. También soy aficionado-nobato de la práctica del Hacking (no del lamming ¡OJO!) y las herramientas que utilizo son para Windows.

Así pués por estos y otros tantos motivos escojo Windows como Sistema Operativo (aunque tengo instalados en un mismo ordenador Ubuntu y Windows Vista por si me da el "mono" de linux xD).

Saludos Dioni.


Imagen de User170294

Aquí está

Si lo quieres encontrar búscalo aquí: http://psp.jim.sh/pspsdk-doc/

Imagen de AitorDB

By Aitor

De esa manera puede tardar años en encontrarlo, http://psp.jim.sh/pspsdk-doc/psputility__msgdialog_8h.html hay lo tienes

Imagen de User170294

By Dark_CoDev

Es lo que toca.

Puede que tarde años en encontrarlo pero hay que mover el ***** si quieres encontrar cosas. Además, normalmente en C (con todo el montón de funciones que hay) se tiene uno que buscar la vida por sí mismo. Puede parecer egoista pero hazme caso,en C hay que aprender a buscarse la vida, ya que todo es mucho más complejo, y si no te acostumbras te estancas.

Saludos 6381.


Editado: El uso de palabras inadecuadas podría resultar ofensivo para ciertos usuarios y va en contra de las Normas de la Comunidad, antes de volver a postear por favor revíselas.| Rober Galarga


Imagen de AitorDB

By Aitor

Si yo lo se, solo digo que si se sabe cual es, a ti solo te costaria recordar el nombre, mientras que a él le llevaría mucho más. Por eso lo he puesto yo. :p


Sígueme en Twitter: @Aitor_db

Imagen de Andresmargar

Mensajes en C

Los mensajes en C hay varias funciones, hay 2 que conozco:

 

printf(pspDebugScreenPrintf("texto"));

 

cout << "texto" << end1;

 

Espero que te sirva ;D


~Actualmente estudiando Ingeniería de las Tecnologías de la Telecomunicación en la Escuela de Ingenieros~

Imagen de AitorDB

By Aitor

Creo que te equivocas, ¿printf(pspDebugScreenPrintf("texto"));? la primera vez que veo eso, sería pspDebugScreenPrintf("texto"); y eso e suna impresión "normal" en pantalla, no como lo quiere él.

 

cout << "texto" << end1; este, hasta lo que sé, no vale en PSP.

 


Te recomiendo que lo hagas con Oslib, me parece que había una forma, si no ahora cuando se pase por este post Dioni, haber si se acuerda de la funcion en concreto.

 

EDITO: Aquí tienes la documentación abierta por los diálogos, http://www.sakya.it/OSLib_MOD/doc/html/group___dialogs.html


Sígueme en Twitter: @Aitor_db

Imagen de Andresmargar

Me referia A:

Que en C (sin compiladores especiales), se usa printf("texto"); Y que en PSP se usa pspDebugScreenPrintf("texto"); pero yo hago #define printf pspDebugScreenPrintf

 

 

Bueno, es que algunas veces no me explico como quiero xD

 

 

Y el cout << "texto" << end1; no se si funciona, solo es cuestion de probar xD

 

EDIT: Yo creia que era salir texto en pantalla, no se, nunca he usado LUA, asi que creia que el os.message era printf...


~Actualmente estudiando Ingeniería de las Tecnologías de la Telecomunicación en la Escuela de Ingenieros~

Imagen de AitorDB

By Aitor

Ok xD

 

Pasa a veces :P

 

Dudo que sirva, ya que para eso tendrías que usar la libreria y no creo que valla en la PSP.

 

os.message es el mensaje del sistema, lo que tu dices es screen.print(x,y,"Texto",etc.)


Sígueme en Twitter: @Aitor_db

Imagen de Andresmargar

Mensaje del sistema...

Con mensaje del sistema te refieres a que la consola propia te da errores de una forma distinta? Si es asi, yo conozco en DS, y creo que en devkitPSP hay tambien un example de eso que dices...

 

Solo es cuestion de mirar, Salu2!


~Actualmente estudiando Ingeniería de las Tecnologías de la Telecomunicación en la Escuela de Ingenieros~

Imagen de Dioni0396

esto es un mensaje del sistema

Imagen de Andresmargar

Eso

se puede hacer con un printf o pspDebugScreenPrintf sin problema alguno, para hacer que no hay memoria suficiente, se podria hacer esto...

//Handler de memoria insuficiente
 
//Define el buffer de memoria
char* handler;
 
//Ponle memoria
handler = (char*) calloc (55555555555, sizeof(char));
 
//Si se puede (imposible en PSP, sobrepasa la RAM)
if(handler){
Jugar();
else{ //Si no...
pspDebugScreenPrintf("Memoria insuficiente\n");
while(1);
}


~Actualmente estudiando Ingeniería de las Tecnologías de la Telecomunicación en la Escuela de Ingenieros~

oie y si funciona?

oie y si funciona?

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.