KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: [C] Getch();,Getchar();
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi also gibt es ein Befehl für C SDK womit man auf ein Knopf druck wartet so wie bei C Für PC da ist es ja der: getch(); oder getchar(); und für Psp?



lg. Secret


PS: sorry wenn ich mich etwas Unverständlich ausgedrückt habe Big Grin bin etwas verwirrt Tongue
So wie ich das verstehe willst du dass der Screen einfriert bis man etws drückt(voher im Code schreiben).
Probier mal:
scekernelSleepThread();
oder so.

Lasse mich gerne verbessern wenn ich falsch liege^^

lg

~Hook~ :
So wie ich das verstehe willst du dass der Screen einfriert bis man etws drückt(voher im Code schreiben).
Probier mal:
scekernelSleepThread();
oder so.

Lasse mich gerne verbessern wenn ich falsch liege^^

lg


Ne hab schon versucht da hält die Konsole für immer an Big Grin ich will ja nur bis ein Knopf gedrückt wird.

Trotzdem danke.


PS: das hab ich auch versucht: sceDisplayWaitVblankStart();

secret :

~Hook~ :
So wie ich das verstehe willst du dass der Screen einfriert bis man etws drückt(voher im Code schreiben).
Probier mal:
scekernelSleepThread();
oder so.

Lasse mich gerne verbessern wenn ich falsch liege^^

lg


Ne hab schon versucht da hält die Konsole für immer an Big Grin ich will ja nur bis ein Knopf gedrückt wird.

Trotzdem danke.


PS: das hab ich auch versucht: sceDisplayWaitVblankStart();


Oh, daswar mir nicht bekannt, sorry Wink
Schau am besten in einer Header nach, weiß leider grad nicht welche^^

Mach doch einfach den Callback Code rein:

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

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

    cbid = sceKernelCreateCallback("Exit Callback", (void*) exitCallback, 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;
}


Und füg dann in deinen Code setupCallbacks(); ein.

Edit: Also die Callback Funktionen kommen über die main und das setupCallback() kommt in deine main ;D

Wenn du willst erklär ich dir den Callback Code ein "bisschen" weis aber ehrlich gesagt auch nicht wofür manches gut ist :D

stehn :
Mach doch einfach den Callback Code rein:

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

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

    cbid = sceKernelCreateCallback("Exit Callback", (void*) exitCallback, 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;
}


Und füg dann in deinen Code setupCallbacks(); ein.

Wenn du willst erklär ich dir den Callback Code ein "bisschen" weis aber ehrlich gesagt auch nicht wofür manches gut ist Big Grin

Cool thx Big Grin probier ich mal aus.


EDIT: geht nicht psp freezet ich glaub du hast falsch verstanden Big Grin ich brauche ein befehl das den Bildschirm solange anhält bis ich eine Taste drücke.

secret :
EDIT: geht nicht psp freezet ich glaub du hast falsch verstanden Big Grin ich brauche ein befehl das den Bildschirm solange anhält bis ich eine Taste drücke.


Nein damit kannst du das HB über die Home Taste beenden du kannst das natürlich auch mit den Tasten machen aber der Callback Code ist eigentlich Standart in jedem HB ;D

Und lies meinen Edit. Und am ende machst du sceKernelSleepThread

stehn :

secret :
EDIT: geht nicht psp freezet ich glaub du hast falsch verstanden Big Grin ich brauche ein befehl das den Bildschirm solange anhält bis ich eine Taste drücke.


Nein damit kannst du das HB über die Home Taste beenden du kannst das natürlich auch mit den Tasten machen aber der Callback Code ist eigentlich Standart in jedem HB ;D

Und lies meinen Edit. Und am ende machst du sceKernelSleepThread


nene also callback und diese ganze sache hab ich immer im mein HBs Tongue nur ich weiss nicht richtig was die bringen egal.. was ich meine ist es muss doch ein befehl geben was die Konsole anhält bis man eine Taste drückt Big Grin.

stehn :

secret :
EDIT: geht nicht psp freezet ich glaub du hast falsch verstanden Big Grin ich brauche ein befehl das den Bildschirm solange anhält bis ich eine Taste drücke.


Nein damit kannst du das HB über die Home Taste beenden du kannst das natürlich auch mit den Tasten machen aber der Callback Code ist eigentlich Standart in jedem HB ;D

Und lies meinen Edit. Und am ende machst du sceKernelSleepThread


Hatte ich doch recht mit sceKernelSleepThread(); Wink
Naja standart in jedem HB? Nicht in jedem, in vielen. Wink
z.B. bei einem HB mit vlflib, brauchst du den Callback Code nicht Wink

~Hook~ :

stehn :

secret :
EDIT: geht nicht psp freezet ich glaub du hast falsch verstanden Big Grin ich brauche ein befehl das den Bildschirm solange anhält bis ich eine Taste drücke.


Nein damit kannst du das HB über die Home Taste beenden du kannst das natürlich auch mit den Tasten machen aber der Callback Code ist eigentlich Standart in jedem HB ;D

Und lies meinen Edit. Und am ende machst du sceKernelSleepThread


Hatte ich doch recht mit sceKernelSleepthread(); Wink
Naja standart in jedem HB? Nicht in jedem, in vielen. Wink
z.B. bei einem HB mit vlflib, brauchst du den Callback Code nicht Wink


ok es wäre mir lieber wenn ihr mir erklärt was dieses Callback usw. ist Big Grin ich bin etwas verwirrt Big Grin

~Hook~ :

stehn :

secret :
EDIT: geht nicht psp freezet ich glaub du hast falsch verstanden Big Grin ich brauche ein befehl das den Bildschirm solange anhält bis ich eine Taste drücke.


Nein damit kannst du das HB über die Home Taste beenden du kannst das natürlich auch mit den Tasten machen aber der Callback Code ist eigentlich Standart in jedem HB ;D

Und lies meinen Edit. Und am ende machst du sceKernelSleepThread


Hatte ich doch recht mit sceKernelSleepThread(); Wink
Naja standart in jedem HB? Nicht in jedem, in vielen. Wink
z.B. bei einem HB mit vlflib, brauchst du den Callback Code nicht Wink


Jaja schon klar nicht in jedem aber es ist besser man macht ihn rein...

Edit:
Achso ja in dem Code block wird das & Zeichen so scheiße angezeigt -.-

Also Hello World mit Callback:


#include <pspkernel.h>
#include <pspdebug.h>
#include <stdlib.h>
#include <string.h>

#define printf pspDebugScreenPrintf

PSP_MODULE_INFO("Hello World", 0, 1, 1);

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

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

cbid = sceKernelCreateCallback("Exit Callback", (void*) exitCallback, 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() {
pspDebugScreenPrintf();
setupCallback();

printf("Hello World");

sceKernelSleepThread();
return 0;
}

Probier das mal

stehn :

~Hook~ :

stehn :

secret :
EDIT: geht nicht psp freezet ich glaub du hast falsch verstanden Big Grin ich brauche ein befehl das den Bildschirm solange anhält bis ich eine Taste drücke.


Nein damit kannst du das HB über die Home Taste beenden du kannst das natürlich auch mit den Tasten machen aber der Callback Code ist eigentlich Standart in jedem HB ;D

Und lies meinen Edit. Und am ende machst du sceKernelSleepThread


Hatte ich doch recht mit sceKernelSleepThread(); Wink
Naja standart in jedem HB? Nicht in jedem, in vielen. Wink
z.B. bei einem HB mit vlflib, brauchst du den Callback Code nicht Wink


Jaja schon klar nicht in jedem aber es ist besser man macht ihn rein...

Gehts secret


ok ich machs euch leichter Big Grin

so das ist mein code:

PHP-Code:
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspdisplay.h>
#include <pspctrl.h> 


PSP_MODULE_INFO("count"011); 

#define printf pspDebugScreenPrintf

/* Exit callback */
int exit_callback(int arg1int arg2void *common) {
          
sceKernelExitGame();
          return 
0;
}

/* Callback thread */
int CallbackThread(SceSize argsvoid *argp) {
          
int cbid;

          
cbid sceKernelCreateCallback("Exit Callback"exit_callbackNULL);
          
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"CallbackThread0x110xFA000);
          if(
thid >= 0) {
                    
sceKernelStartThread(thid00);
          }

          return 
thid;


int main() {
    
pspDebugScreenInit();
    
SetupCallbacks(); 
    
SceCtrlData pad;      //pad undeklariert   
 
while(1)
 {
    
sceCtrlReadBufferPositive(&amp;pad1);         //pad kriegt den wert der kontrols.
       
       
if(pad.Buttons &ampPSP_CTRL_CROSS)
        {
          
printf("(X)\n\a");
         
///////////////////////////////////////////////////// 
       
}

       if(
pad.Buttons &ampPSP_CTRL_CIRCLE)
        {
          
printf("(Kreis)\n\a");
          
///////////////////////////////////////////////////// 
       
}
       
       if(
pad.Buttons &ampPSP_CTRL_SQUARE)
        {
          
printf("(Viereck)\n\a");
    
///////////////////////////////////////////////////// 
       
}
       
       if(
pad.Buttons &ampPSP_CTRL_TRIANGLE)
        {
          
printf("(Dreieck)\n\a");
   
///////////////////////////////////////////////////// 
       
}
          
       if(
pad.Buttons &ampPSP_CTRL_RTRIGGER )
        {
          
printf("(R)\n\a");
          
///////////////////////////////////////////////////// 
       
}

       if(
pad.Buttons &ampPSP_CTRL_LTRIGGER)
        {
          
printf("(L)\n\a");  
         
///////////////////////////////////////////////////// 
       
}
       

       if(
pad.Buttons &ampPSP_CTRL_SELECT)
        {
          
printf("(SELECT)\n\a");
          
///////////////////////////////////////////////////// 
       
}

       if(
pad.Buttons &ampPSP_CTRL_START)
        {
          
printf("(START)\n\a");
          
///////////////////////////////////////////////////// 
       
}
       
       if(
pad.Buttons &ampPSP_CTRL_UP)
        {
          
printf("(OBEN)\n\a");
         
///////////////////////////////////////////////////// 
       
}
          
       if(
pad.Buttons &ampPSP_CTRL_DOWN)
        {
          
printf("(UNTEN)\n\a");
  
///////////////////////////////////////////////////// 
       
}
       
       if(
pad.Buttons &ampPSP_CTRL_LEFT)
        {
          
printf("(LINKS)\n\a"); 
           
///////////////////////////////////////////////////// 
       
}
          
       if(
pad.Buttons &ampPSP_CTRL_RIGHT)
        {
          
printf("(RECHTS)\n\a");
 
///////////////////////////////////////////////////// 
       
}
}

    
sceKernelSleepThread();
    return 
0;

über all wo eine ///////////////////////////////////////////// ist da soll mein anhalte code rein weil wenn ich ein Knopf drücke wird der Text tausendmal geprintet.

Mach mal in die while pspDebugScreenSetXY(5, 4); am anfang. Bei mir die der Text dann nie wieder holt Big Grin

wenn das nicht geht mach mal in die while am ende pspDebugScreenClear();

stehn :
Mach mal in die while pspDebugScreenSetXY(5, 4); am anfang. Bei mir die der Text dann nie wieder holt Big Grin

wenn das nicht geht mach mal in die while am ende pspDebugScreenClear();


ja also das mit den pspDebugScreenClear(); hab ich schon getestet da ist dan der halbe text weg Big Grin.

secret :

stehn :
Mach mal in die while pspDebugScreenSetXY(5, 4); am anfang. Bei mir die der Text dann nie wieder holt Big Grin

wenn das nicht geht mach mal in die while am ende pspDebugScreenClear();


ja also das mit den pspDebugScreenClear(); hab ich schon getestet da ist dan der halbe text weg Big Grin.


Dann machst du ein Fehler Wink
pspDebugScreenClear(); solltest du mal vor dem nächsten Textaufruf schreiben Wink

Seiten: 1 2
Referenz-URLs