KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: [C-Code]Wo liegt der Fehler
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
hi,
ich hab jetzt mit c für die psp angefangen.
vorher habe ich nur in c++ mfc-anwendungen geschrieben/gestaltet.
ich dachte mir ich mach mal ein menu nach der anleitung von psp-hilfe.
hier ist der code (ich hab schon etwas rumprobiert...):
Spoiler: (anzeigen)
probleme habe ich mit diesem teil:

Code:
if((aktivmenu == 0) && (pad.Buttons & PSP_CTRL_CROSS))
        {
            pspDebugScreenClear();
            pspDebugScreenPrintf("Wenn du das liest hat es geklappt");
            sceKernelSleepThread();

            if(pad.Buttons & PSP_CTRL_CIRCLE)
            {
                pspDebugScreenClear();
                printmenu();
            }
        }


wenn die schrift angezeigt wird soll man mit Kreis zurück ins menu kommen, doch da passiert nichts...
es wäre schön wenn mir einer helfen kann der auch bescheid weiß(!!!)


lg

Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?

stehn :
Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?


Yoaah, mit sceKernelSleepThread(); hast du dein Programm komplett angehalten. Einfach rausschmeißen dann müsste es klappenWink

~Hook~ :

stehn :
Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?


Yoaah, mit sceKernelSleepThread(); hast du dein Programm komplett angehalten. Einfach rausschmeißen dann müsste es klappenWink


Hmm ne ich glaub da würde es auch nicht klappen da man ja während man X drück und aktivmenu 0 ist O drücken müsste. Naja und außerdem würde ich noch was einbauen mit buttons == 0 da das sonst immer wieder holt ausgeführt wird. DU könntest das eben auch anders machen.

stehn :

~Hook~ :

stehn :
Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?


Yoaah, mit sceKernelSleepThread(); hast du dein Programm komplett angehalten. Einfach rausschmeißen dann müsste es klappenWink


Hmm ne ich glaub da würde es auch nicht klappen da man ja während man X drück und aktivmenu 0 ist O drücken müsste. Naja und außerdem würde ich noch was einbauen mit buttons == 0 da das sonst immer wieder holt ausgeführt wird. DU könntest das eben auch anders machen.


Wenn du das Menü anderes machen würdest, hättest du dieses Problem nicht. z.B. Switch case Wink

stehn :

~Hook~ :

stehn :
Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?


Yoaah, mit sceKernelSleepThread(); hast du dein Programm komplett angehalten. Einfach rausschmeißen dann müsste es klappenWink


Hmm ne ich glaub da würde es auch nicht klappen da man ja während man X drück und aktivmenu 0 ist O drücken müsste. Naja und außerdem würde ich noch was einbauen mit buttons == 0 da das sonst immer wieder holt ausgeführt wird. DU könntest das eben auch anders machen.


und wie macht man das anders?
(wie gesagt ich bin noch ein noob^^)

gruschi :

stehn :

~Hook~ :

stehn :
Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?


Yoaah, mit sceKernelSleepThread(); hast du dein Programm komplett angehalten. Einfach rausschmeißen dann müsste es klappenWink


Hmm ne ich glaub da würde es auch nicht klappen da man ja während man X drück und aktivmenu 0 ist O drücken müsste. Naja und außerdem würde ich noch was einbauen mit buttons == 0 da das sonst immer wieder holt ausgeführt wird. DU könntest das eben auch anders machen.


und wie macht man das anders?
(wie gesagt ich bin noch ein noob^^)


Mit Switch Case hättest du dieses Problem nicht Wink

Mal ein Beispiel:

PHP-Code:
char *items[5] =
{
    
"Text anzeigen",
    
"Option 2",
    
"Option 3",
    
"Option 4",
    
"Beenden"
}; 


PHP-Code:
while(1)
    {
                 

        
sceCtrlReadBufferPositive(&pad1);
        if(
pad.Buttons &ampPSP_CTRL_RTRIGGER)
        {
            
int ret menu();
            switch(
ret)
            {
                case 
0:
                    
Code der passiert...();
                    break;

                case 
1:
                    
sceKernelExitGame();
                    break;
                    
                case 
2:
                     
                    
Text("TEXT");
                    
                    break;
            

etc....


~Hook~ :

stehn :

~Hook~ :

stehn :
Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?


Yoaah, mit sceKernelSleepThread(); hast du dein Programm komplett angehalten. Einfach rausschmeißen dann müsste es klappenWink


Hmm ne ich glaub da würde es auch nicht klappen da man ja während man X drück und aktivmenu 0 ist O drücken müsste. Naja und außerdem würde ich noch was einbauen mit buttons == 0 da das sonst immer wieder holt ausgeführt wird. DU könntest das eben auch anders machen.


Wenn du das Menü anderes machen würdest, hättest du dieses Problem nicht. z.B. Switch case Wink


Hmm ich glaub das liefe aufs selbe hinaus.
Du könntest eine neue "int Funktion" machen ansonsten fällt mir gerade keiner anderer Lösungsweg ein. Warte am besten bis ein guter Dev on kommt der wird dir sicher besser helfen könne Big Grin

~Hook~ :

gruschi :

stehn :

~Hook~ :
[quote=stehn]
Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?


Yoaah, mit sceKernelSleepThread(); hast du dein Programm komplett angehalten. Einfach rausschmeißen dann müsste es klappenWink


stehn :

Hmm ne ich glaub da würde es auch nicht klappen da man ja während man X drück und aktivmenu 0 ist O drücken müsste. Naja und außerdem würde ich noch was einbauen mit buttons == 0 da das sonst immer wieder holt ausgeführt wird. DU könntest das eben auch anders machen.


und wie macht man das anders?
(wie gesagt ich bin noch ein noob^^)


Mit Switch Case hättest du dieses Problem nicht Wink

Mal ein Beispiel:

PHP-Code:
char *items[5] =
{
    
"Text anzeigen",
    
"Option 2",
    
"Option 3",
    
"Option 4",
    
"Beenden"
}; 


o.Ô
kannst du das bitte etwas erklären?
muss ich da noch etwas includieren?

stehn :
Hmm ich glaub das liefe aufs selbe hinaus.
Du könntest eine neue "int Funktion" machen ansonsten fällt mir gerade keiner anderer Lösungsweg ein. Warte am besten bis ein guter Dev on kommt der wird dir sicher besser helfen könne


ahhhja...

gruschi :

~Hook~ :

gruschi :

stehn :

~Hook~ :
[quote=stehn]
Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?


Yoaah, mit sceKernelSleepThread(); hast du dein Programm komplett angehalten. Einfach rausschmeißen dann müsste es klappenWink


stehn :

Hmm ne ich glaub da würde es auch nicht klappen da man ja während man X drück und aktivmenu 0 ist O drücken müsste. Naja und außerdem würde ich noch was einbauen mit buttons == 0 da das sonst immer wieder holt ausgeführt wird. DU könntest das eben auch anders machen.


und wie macht man das anders?
(wie gesagt ich bin noch ein noob^^)


Mit Switch Case hättest du dieses Problem nicht Wink

Mal ein Beispiel:

PHP-Code:
char *items[5] =
{
    
"Text anzeigen",
    
"Option 2",
    
"Option 3",
    
"Option 4",
    
"Beenden"
}; 


o.Ô
kannst du das bitte etwas erklären?
muss ich da noch etwas includieren?

Zitat:
Hmm ich glaub das liefe aufs selbe hinaus.
Du könntest eine neue "int Funktion" machen ansonsten fällt mir gerade keiner anderer Lösungsweg ein. Warte am besten bis ein guter Dev on kommt der wird dir sicher besser helfen könne


ahhhja...


Das ist keine Switch Case sonder eine char array Wink

stehn :
Das ist keine Switch Case sonder eine char array Wink


was macht die/das?

gruschi :

stehn :
Das ist keine Switch Case sonder eine char array Wink


was macht die/das?


Also einfach gesagt die speicher Text Wink

Also ich könnte dir nun einen Beispiel Code machen aber da hättest du ja nichts gelernt oder ? ^^

stehn :

gruschi :

~Hook~ :

gruschi :

stehn :

~Hook~ :
[quote=stehn]
Ja logo du hast den Thread angehalten wie soll man dann auch mit O zurück kommen ?


Yoaah, mit sceKernelSleepThread(); hast du dein Programm komplett angehalten. Einfach rausschmeißen dann müsste es klappenWink


stehn :

Hmm ne ich glaub da würde es auch nicht klappen da man ja während man X drück und aktivmenu 0 ist O drücken müsste. Naja und außerdem würde ich noch was einbauen mit buttons == 0 da das sonst immer wieder holt ausgeführt wird. DU könntest das eben auch anders machen.


und wie macht man das anders?
(wie gesagt ich bin noch ein noob^^)


Mit Switch Case hättest du dieses Problem nicht Wink

Mal ein Beispiel:

PHP-Code:
char *items[5] =
{
    
"Text anzeigen",
    
"Option 2",
    
"Option 3",
    
"Option 4",
    
"Beenden"
}; 


o.Ô
kannst du das bitte etwas erklären?
muss ich da noch etwas includieren?

Zitat:
Hmm ich glaub das liefe aufs selbe hinaus.
Du könntest eine neue "int Funktion" machen ansonsten fällt mir gerade keiner anderer Lösungsweg ein. Warte am besten bis ein guter Dev on kommt der wird dir sicher besser helfen könne


ahhhja...


Das ist keine Switch Case sonder eine char array Wink


Schau doch mal oben was ich geschrieben, habe Wink
Die Menu schreibst du in einem Array, und unten ist der Switch Case für die Funktionen Wink

Habe nur vergessen der Switch Case noch zu schreiben Wink

PHP-Code:
char *items[5] =
{
    
"Text anzeigen",
    
"Option 2",
    
"Option 3",
    
"Option 4",
    
"Beenden"
}; 


seit wann macht man denn ein semikolon hinter die geschweifte klammer?

gruschi :

PHP-Code:
char *items[5] =
{
    
"Text anzeigen",
    
"Option 2",
    
"Option 3",
    
"Option 4",
    
"Beenden"
}; 


seit wann macht man denn ein semikolon hinter die geschweifte klammer?


Sagen wir das so, da es kein Befehlspaket ist, wird der Array nicht mit einer geschweiften Klammer abgeschlossen, sondern mit einem Semicolon^^

Seiten: 1 2 3
Referenz-URLs