Anuncios Google

[C] Ayuda con mi main[SOLUCIONADO]

Hola, lo que quiero hacer es una cosa simple, que si presiono X aumento 1 a numero, y si presiono 0 le disminuyo 1, he echo esto:

//*Programa Prueba por Barney77 - :D
 
#include<pspdebug.h>
#include<pspkernel.h>
#include<pspdisplay.h>
#include<pspctrl.h>
 
#define printf pspDebugScreenPrintf
 
PSP_MODULE_INFO("Prueba Botones",0,1,1);
 
/* Llamada de salida */
int exit_callback(int arg1, int arg2, void *common) {
          sceKernelExitGame();
          return 0;
}
 
/* Llamada thread */
int CallbackThread(SceSize args, void *argp) {
          int cbid;
 
          cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
          sceKernelRegisterExitCallback(cbid);
 
          sceKernelSleepThreadCB();
 
          return 0;
}
 
/* Configura llamada thread y vuelve a su 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() {
    pspDebugScreenInit();
    SetupCallbacks();
    int numero=0; SceCtrlData pad;
    printf("Numero: %i\n",numero);
    printf("Presiona X para aumentar 1 a numero\n");
    printf("Presona 0 para disminuir 1 a numero\n");
 
    while(1) {
             sceCtrlReadBufferPositive(&pad,1);
             if(pad.Buttons & PSP_CTRL_CROSS) {
                            numero++;
                            }
             }
    pspDebugScreenClear();
   while(1) {
            sceCtrlReadBufferPositive(&pad,1);
            if(pad.Buttons & PSP_CTRL_CIRCLE) {
                           numero=numero-1;
                           }
            }
   pspDebugScreenClear();
   return 0;
}

El problema esque si presiono X o 0 no hace nada..


Solucionado(entre comillas)..

Pues lo que hice fue meter en la condicion el clear, y que asimismo volviera a printear con los cambios efectuados, pero.. si presiono 0 no hace nada, no creo que sea problema de la forma en la que resto(el compilador no marca error), de todos modos ahora are que sume con ambos(circulo y X), para ver si de verdad el problema viene siendo la forma en la que resto, les dejo el code, para ver si es la manera correcta en la que lo hago y sus errores(si es que los tiene).

//*Programa Prueba por Barney77 - :D
 
#include<pspdebug.h>
#include<pspkernel.h>
#include<pspdisplay.h>
#include<pspctrl.h>
 
#define printf pspDebugScreenPrintf
 
PSP_MODULE_INFO("Prueba Botones",0,1,1);
 
/* Llamada de salida */
int exit_callback(int arg1, int arg2, void *common) {
          sceKernelExitGame();
          return 0;
}
 
/* Llamada thread */
int CallbackThread(SceSize args, void *argp) {
          int cbid;
 
          cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
          sceKernelRegisterExitCallback(cbid);
 
          sceKernelSleepThreadCB();
 
          return 0;
}
 
/* Configura llamada thread y vuelve a su 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() {
    pspDebugScreenInit();
    SetupCallbacks();
    int numero=0; SceCtrlData pad;
    printf("Numero: %i\n",numero);
    printf("Presiona X para aumentar 1 a número\n");
    printf("Presona 0 para disminuir 1 a número\n");
 
    while(1) {
             sceCtrlReadBufferPositive(&pad,1);
             if(pad.Buttons & PSP_CTRL_CROSS) {
                            numero++;
                            pspDebugScreenClear();
                                printf("Numero: %i\n",numero);
                                printf("Presiona X para aumentar 1 a número\n");
                                printf("Presona 0 para disminuir 1 a número\n");
                            }                        
}
   while(1) {
            sceCtrlReadBufferPositive(&pad,1);
            if(pad.Buttons & PSP_CTRL_CIRCLE) {
                           numero--;
                           pspDebugScreenClear();
                               printf("Numero: %i\n",numero);
                               printf("Presiona X para aumentar 1 a número\n");
                               printf("Presona 0 para disminuir 1 a número\n");
                           }
}
return 0;
}

EDITO: Pues no, no es la forma en la que resto... ya que ahora en ves de restar, hago que sume(con X y 0),.. PERO NADA NO SUMA CON CIRCULO, el code final:

//*Programa Prueba por Barney77 - :D
 
#include<pspdebug.h>
#include<pspkernel.h>
#include<pspdisplay.h>
#include<pspctrl.h>
 
#define printf pspDebugScreenPrintf
 
PSP_MODULE_INFO("Prueba Botones",0,1,1);
 
/* Llamada de salida */
int exit_callback(int arg1, int arg2, void *common) {
          sceKernelExitGame();
          return 0;
}
 
/* Llamada thread */
int CallbackThread(SceSize args, void *argp) {
          int cbid;
 
          cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
          sceKernelRegisterExitCallback(cbid);
 
          sceKernelSleepThreadCB();
 
          return 0;
}
 
/* Configura llamada thread y vuelve a su 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() {
    pspDebugScreenInit();
    SetupCallbacks();
    int numero=0; SceCtrlData pad;
    printf("Numero: %i\n",numero);
    printf("Presiona X para aumentar 1 a número\n");
    printf("Presona 0 para disminuir 1 a número\n");
 
    while(1) {
             sceCtrlReadBufferPositive(&pad,1);
             if(pad.Buttons & PSP_CTRL_CROSS) {
                            numero++;
                            pspDebugScreenClear();
                                printf("Numero: %i\n",numero);
                                printf("Presiona X para aumentar 1 a número\n");
                                printf("Presona 0 para disminuir 1 a número\n");
                            }                        
}
   while(1) {
            sceCtrlReadBufferPositive(&pad,1);
            if(pad.Buttons & PSP_CTRL_CIRCLE) {
                           numero++;
                           pspDebugScreenClear();
                               printf("Numero: %i\n",numero);
                               printf("Presiona X para aumentar 1 a número\n");
                               printf("Presona 0 para disminuir 1 a número\n");
                           }
}
return 0;
}

EDITO2: Ahora cambie las condiciones,  y el primer loop ahora es con Circulo, pero ahora no suma con X S:, ayuda!

EDITO3: Ya lo he solucionado, gracias stingo, lo puse todo en un solo bucle.


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 sting18

pon todo en un solo bucle

pon todo en un solo bucle (while) no agas 2 solo usa 1

Imagen de barney77

No se porque no se me ocurrio

No se porque no se me ocurrio antes xD, ahora lo pongo en uno solo, gracias.

EDITO: Ya me funcionó, gracias stingo.

Imagen de sting18

Ya sabes doble 7 ;)

Ya sabes doble 7 ;)

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.