KINGx - Das inoffizielle PlayStation Forum & News Portal
[TUT] Einfaches Menü in C - Druckversion

+- KINGx - Das inoffizielle PlayStation Forum & News Portal (http://www.kingx.de/forum)
+-- Forum:    PS Vita / PSP (/forumdisplay.php?fid=1)
+--- Forum: Homebrew (/forumdisplay.php?fid=8)
+---- Forum: Development (/forumdisplay.php?fid=34)
+----- Forum: Dev-Tutorials (/forumdisplay.php?fid=59)
+----- Thema: [TUT] Einfaches Menü in C (/showthread.php?tid=27623)


[TUT] Einfaches Menü in C - _Kai_ - 26.11.2010 17:48

Hi,

Ich poste hier mal ein kleines Tutorial von PSP-Hilfe.de

Ihr benötigt:

* PSP mit Customfirmware oder HBL zum Testen
* Entwicklungsumgebung/Compiler

Folgende Headerfiles werden benötigt:

Code:
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>


Code:
int aktivmenu = 0;
int maxmenu = 2;


In der Variable “aktivmenu” wird die aktuelle Menüposition gespeichert.
In der Variable “maxmenu” die Zahl der vorhandenen Menüpunkte, in diesem Fall sind es 3 Menüpunkte, also ist der Wert der Variable 2. Menüpunkt 0, 1 und 2

Code:
char menu[3][15] = {"Spiel starten","Spiel laden","Spiel beenden"};


Das ist ein Zweidimensionaler Char Array, seine Größe beträgt 35 Byte (3*15) und es werden 3 Zeiger gesetzt.

Funktion für die Menüausgabe

Jetzt schreiben wir die Funktion mit der wir das Menü auf dem Display ausgeben werden.

Code:
void printmenu(){


Eine Void Funktion, da sie keinen Wert per Return zurückgeben muss.

Code:
int i;


Diese Variable benötigen wir jetzt in der For Schleife.

Code:
for(i=0;i<maxmenu+1;i++)


Mit einer For Schleife kann man eine bestimmte Anzahl an Wiederholungen definieren, sie hat 3 Parameter.

1. Der Variable “i” wird ein Wert zugeteilt, in diesem Fall 0.
2. Die Variable “maxmenu” erhöht um 1 darf nicht größer als i sein, ansonsten wird die Schleife beendet.
3. Bei jedem Durchlauf wird “i” um 1 erhöht.

Code:
if(aktivmenu == i)
{
}


Der Inhalt dieser Schleife wird ausgeführt wenn “i” den gleichen Wert wie der aktuelle Menüpunkt hat. Vor das, was hier ausgegeben wird kommt ein Pfeil.

Code:
if(aktivmenu == i)
{
  pspDebugScreenPrintf("-> %s\n",menu[i]);
}


PspDebugScreenPrintf hat hier 2 Parameter. Mit “-> %s\n” wird ein Pfeil “->”, die Variable im folgenden Parameter und ein Zeilenumbruch geschrieben. Mit “menu[i]” wird der Menüpunkt mit dem Wert von “i” aus dem Array gelesen. Im ersten Durchlauf z.b. “menu[1]” im 2. menu[2] usw.

Code:
else
{
  pspDebugScreenPrintf("   %s\n",menu[i]);
}


Falls der Menüpunkt nicht markiert ist werden statt dem Pfeil 2 Leerzeichen geschrieben.

Code:
}
}


Die For Schleife und die Funktion werden geschlossen.

Hier nocheinmal die komplette Funktion:

Code:
void printmenu(){
  int i;
  for(i=0;i<maxmenu+1;i++)
  {
    if(aktivmenu == i)
    {
      pspDebugScreenPrintf("-> %s\n",menu[i]);
    }
    else
    {
      pspDebugScreenPrintf("   %s\n",menu[i]);
    }
  }  
}


Wenn wir diese Funktion jetzt aufrufen werden alle Menüpunkte ausgegeben, der aktive Menüpunkt mit Pfeil.

Main Funktion

Code:
int main()
{


Die Callbacks und der DebugScreen werden initialisiert:

Code:
pspDebugScreenInit();
SetupCallbacks();


Variable für die Tasten:

Code:
SceCtrlData pad;


Und in diese Variable setzen wir später auf 1 wenn eine Taste gedrückt ist und wieder auf 0 wenn sie nicht mehr gedrückt ist. Sonst würde die Ausgabe in der gleich folgenden While Schleife knapp 10 mal durchlaufen wenn man einmal nach unten oder nach oben drückt.

Code:
int button = 0;


Das Menü muss am Anfang ausgegeben werden auch wenn noch keine Taste gedrückt wurde:

Code:
printmenu();


Jetzt die While Schleife. Der Inhalt dieser Schleife wird immer wiederholt, wodurch ständig überprüft wird ob eine Taste gedrückt ist und falls ja das Menü neu ausgegeben.

Code:
while(running)
{


Mit folgender Funktion werden die Tasten ausgelesen und in “pad” gespeichert:

Code:
sceCtrlReadBufferPositive(&pad, 1);


Und nun kommen wir zu den Abfragen der Tasten:

Code:
if((pad.Buttons & PSP_CTRL_DOWN) && (aktivmenu != maxmenu) && (button == 0))
{
  aktivmenu++;
  pspDebugScreenClear();
  printmenu();
}


Die If beinhaltet 3 Bedingungen:

1. Die nach unten Taste muss gedrückt sein
2. “aktivmenu” darf nicht gleich groß sein wie “maxmenu”, weil es ja nur 3 Menüpunkte gibt
3. “button” muss gleich 0 sein.

Wenn die Bedingungen erfüllt werden wird der aktuelle Menüpunkt um 1 erhöht “aktivmenu++;”, der aktuelle Text vom Bildschirm gelöscht und das das neue Menü ausgegeben.

Jetzt nochmal das gleiche nur umgekehrt:

Code:
if((pad.Buttons & PSP_CTRL_UP) && (aktivmenu != 0) && (button == 0))
{
  aktivmenu-=1;
  pspDebugScreenClear();
  printmenu();
}


Und jetzt die Abfrage die “button” auf 1 oder wieder auf 0 setzt:

Code:
if((pad.Buttons & PSP_CTRL_UP) && (aktivmenu != 0) && (button == 0))
{
  aktivmenu-=1;
  pspDebugScreenClear();
  printmenu();
}


Wenn ein Menüpunkt ausgewählt ist und die X Taste gedrückt wird soll ja auch etwas passieren, dazu ein kleines Beispiel:

Code:
if((aktivmenu == 2) && (pad.Buttons & PSP_CTRL_CROSS))
{
  sceKernelExitGame();
}


Die Funktion “sceKernelExitGame” beendet das Programm und man landet wieder im XMB

Jetzt müssen wir nur noch die Main Funktion beenden:

Code:
return 0;
}


Menüpunkt hinzufügen

Falls ihr einen Menüpunkt hinzufügen wollt müsst ihr nur “maxmenu” um 1 erhöhen und dem Array ein weiteres Element zuteilen. Beispiel:

Code:
int maxmenu = 3;
char menu[4][15] = {"Spiel starten","Spiel laden","Einstellungen","Spiel beenden"};


Kompletter Sourcecode

Spoiler: (anzeigen)
Das ganze sieht auf der PSP dann so aus:


Ich hoffe euch gefällt das Tutorial Wink


RE: [TUT] Einfaches Menü in C - WinterFrost - 26.11.2010 17:54

Gefällt mir gut, habe es mal angepinnt.


RE: [TUT] Einfaches Menü in C - PSP-ELITE - 26.11.2010 18:28

Muss schon sagen,es wurde sehr gut erklärt und hat mir auch was gebracht,denn ich will C leren.Danke!!!

Mfg


RE: [TUT] Einfaches Menü in C - Cha0z - 26.11.2010 19:23

Das TuuuuT ist auch auf PSP-Hilfe.de Wink

Dort sind alle TuTs von ihm, die meisten sind auch gut :bravo:


RE: [TUT] Einfaches Menü in C - XiaDao - 26.11.2010 19:31

Co$m0 :
Das TuuuuT ist auch auf PSP-Hilfe.de Wink

Dort sind alle TuTs von ihm, die meisten sind auch gut :bravo:


Mann...
Das steht doch da:

Zitat:
Ich poste hier mal ein kleines Tutorial von PSP-Hilfe.de


@ PSP-Hilfe:

gutes TUT, aber es wäre ein wenig sinnvoller Begriffe wie

Zitat:
Das ist ein Zweidimensionaler Char Array, seine Größe beträgt 35 Byte (3*15) und es werden 3 Zeiger gesetzt.


für Noobss genauer zu erläutern!


RE: [TUT] Einfaches Menü in C - Cha0z - 26.11.2010 19:42

@XiaDao96: Is doch Wurscht Big Grin

Ja, also n' NooB würde da kaum ein Wort verstehen, sondern gleich den Kompletten Src. abschreiben Big Grin

Setz plz. den Kompletten Source Code im Spoiler, da der Text sonst zu lange ist Wink


RE: [TUT] Einfaches Menü in C - _Kai_ - 26.11.2010 20:04

Co$m0 :
Das TuuuuT ist auch auf PSP-Hilfe.de Wink

Dort sind alle TuTs von ihm, die meisten sind auch gut :bravo:


Ja stimmt steht ja auch oben Smile Würde mich freuen wenn ihr auch den ein oder anderen Artikel dort schreiben würdet Big Grin:D

XiaDao96 :
@ PSP-Hilfe:

gutes TUT, aber es wäre ein wenig sinnvoller Begriffe wie

Zitat:
Das ist ein Zweidimensionaler Char Array, seine Größe beträgt 35 Byte (3*15) und es werden 3 Zeiger gesetzt.


für Noobss genauer zu erläutern!


Naja ich wüsste nicht wie ich das besser beschreiben sollte.

Co$m0 :
Setz plz. den Kompletten Source Code im Spoiler, da der Text sonst zu lange ist Wink


Ist gemacht Wink


RE: [TUT] Einfaches Menü in C - XiaDao - 26.11.2010 20:06

PSP-Hilfe :

Co$m0 :
Das TuuuuT ist auch auf PSP-Hilfe.de Wink

Dort sind alle TuTs von ihm, die meisten sind auch gut :bravo:


Ja stimmt steht ja auch oben Smile Würde mich freuen wenn ihr auch den ein oder anderen Artikel dort schreiben würdet Big Grin:D

XiaDao96 :
@ PSP-Hilfe:

gutes TUT, aber es wäre ein wenig sinnvoller Begriffe wie

Zitat:
Das ist ein Zweidimensionaler Char Array, seine Größe beträgt 35 Byte (3*15) und es werden 3 Zeiger gesetzt.


für Noobss genauer zu erläutern!


Naja ich wüsste nicht wie ich das besser beschreiben sollte.

Co$m0 :
Setz plz. den Kompletten Source Code im Spoiler, da der Text sonst zu lange ist Wink


Ist gemacht Wink


z.B. beschreibn was ein Char Array ist. Das TUT is ja für Anfämger gedacht oder?


RE: [TUT] Einfaches Menü in C - pspbricker - 26.11.2010 20:47

Array kann man sich vorstellen wie Tabellen im. Sie bestehen aus einer bestimmten Anzahl von Feldern des selben Types, also:

Code:
char test[2];

test[0] = 'a';
test[1] = 'b';

Wir weiesen also den ersten Feld unser Char Array den Buchstaben a und zweiten Feld den Buchstaben b zu. Die Zählung der Felder beginnt in C mit 0, bei der initialiesirung muss aber darauf geachtet werden, dass die Anazhl der Feldern (von 1 angefangen zu zählen) angeben wird:

Code:
char test[1];

test[0] = 'a';
//richtig

Code:
char test[2];

test[0] = 'a';
test[1] = 'a';
test[2] = 'a';
//falsch, da nur 2 Felder deklariert worden sind


Strings also Zeichenketten sind in C nichts anderes als Char Arrays, deswegen wird bei dem Menü die Menüpunkte auch in einer solchen abgespeichert.


RE: [TUT] Einfaches Menü in C - HacKmaN - 26.11.2010 20:56

@PSP-Hilfe: Sehr gutes Tutorial, wird Anfängern sicherlich helfen einfache Menüs zu coden (wenn ich daran denke was ich damals als ich mit C angefangen hab für Menüs gecodet hab... allein wenn ich an diese Ideen denke würd ich jetzt nen Herzinfakt bekommen Big Grin).


Co$m0 :
Ja, also n' NooB würde da kaum ein Wort verstehen, sondern gleich den Kompletten Src. abschreiben Big Grin


1. Man sollte C gut können bevor man mit der PSP anfängt Wink
Fachbegriffe müssen daher IMHO in solchen Tutorials nicht erklärt werden.
2. Du redest anscheinend über dich selber... du machst ja auch nichts anderes als Sources zu kopieren ohne sie zu verstehen -.-


RE: [TUT] Einfaches Menü in C - ~ferra~ - 26.11.2010 21:06

XiaDao96 :
@ PSP-Hilfe:
gutes TUT, aber es wäre ein wenig sinnvoller Begriffe wie

Zitat:
Das ist ein Zweidimensionaler Char Array, seine Größe beträgt 35 Byte (3*15) und es werden 3 Zeiger gesetzt.


für Noobss genauer zu erläutern!


Ein Array ist ein Datentyp. Diesen gibt es in 3 verschiedenen Formen.
Einmal als Feld, danach als Tabelle und als räumliches Array. PSP-Hilfe verwendet ein zweidimensionales Array, das bedeutet, das es einer Tabelle ähnelt.

Ein Array ist also eine Sammlung mehrer Datenwerte in einem. Jedoch müssen sie alle den selben Datentyp haben. Hier also Char.

Vorstellen kann man sich das so:
Normalerweise müsste man jetzt für jeden Wert eine neue Variable definieren. Mit einem Array fällt sowas weg. Man bestimmt am Anfang wie groß ein Array sein soll, also wie viele Werte reinpassen. Danach kann man einfach darauf zugreifen.

Pseudocode:
arrayname[Index]

Wenn man vorher also ein Array mit einer Größe von 32 Speicherbereichen definiert hat, stehen einem also von der 0 bis zur 31 alle Werte einfach zur Verfügung, indem man sie einfach mit arrayname[1] oder arrayname[21] aufruft.

Bei einem zweidimensionalen stehen jedem ersten Wert zwei weitere zur Verfügung. So ruft man es also folgender maßen auf:
arrayname[Index1,Index2].
Demzufolge hätte man 2 Speicherplätze, da arrayname[1,1] und arrayname[1,2] zur Verfügung stehen.
Danach geht es weiter mit arrayname[2,1] und arrayname[2,2]...

Bei einem dreidimensionalen Array geht es eben mit 3 Ebenen weiter.

MfG ferra


RE: [TUT] Einfaches Menü in C - _Kai_ - 26.11.2010 21:44

XiaDao96 :
z.B. beschreibn was ein Char Array ist. Das TUT is ja für Anfämger gedacht oder?


Also was Char für ein Datentyp ist und was ein Array ist sollte man schon wissen. Wenn ich alle diese Kleinigkeiten erklären würde wäre das Tutorial schon 3 Seiten lang bevor es überhaupt an das Menü geht Upset Trotzdem Danke dass ihr die beiden Begriffe so ausführlich erklärt habt

HacKmaN :
(wenn ich daran denke was ich damals als ich mit C angefangen hab für Menüs gecodet hab... allein wenn ich an diese Ideen denke würd ich jetzt nen Herzinfakt bekommen Big Grin).


Lass mich raten, kein bisschen dynamisch und für jeden ausgewählten Menüpunkt hast du alle neu manuell ausgegeben mit dem Pfeil an der richtigen Stelle so dass alle Menüpunkte 5 mal vorkommen im Code ? Big Grin Sowas hab ich paar mal gesehen desswegen hab ich auch das Tutorial geschrieben ^^

HacKmaN :
1. Man sollte C gut können bevor man mit der PSP anfängt Wink
Fachbegriffe müssen daher IMHO in solchen Tutorials nicht erklärt werden.


Naja ich muss gestehen ich hab mich nie großartig mit C beschäftigt bringe aber schon etwas Erfahrung aus diversen Websprachen mit Wink


RE: [TUT] Einfaches Menü in C - Unbekannt - 30.11.2010 23:42

Tolles Tutorial.
Für Farben geht doch auch:

PHP-Code:
system("color XY"


Interessiere mich seit meine PSP kaputt ist nichtmehr so an C für Psp Smile.


RE: [TUT] Einfaches Menü in C - _Kai_ - 01.12.2010 00:06

Unbekannt :
Tolles Tutorial.
Für Farben geht doch auch:

PHP-Code:
system("color XY"


Interessiere mich seit meine PSP kaputt ist nichtmehr so an C für Psp Smile.


Wenn dann mit pspDebugScreenSetTextColor() das ist ja kein Konsolenapp ^^


RE: [TUT] Einfaches Menü in C - Unbekannt - 01.12.2010 16:34

Und wie definiere ich die Farbe ?


RE: [TUT] Einfaches Menü in C - _Kai_ - 01.12.2010 16:46

Unbekannt :
Und wie definiere ich die Farbe ?


Ich denke so habs aber nie probiert:

pspDebugScreenSetTextColor(0xFF0000);
pspDebugScreenPrintf("Dieser Text ist rot\n");


RE: [TUT] Einfaches Menü in C - Unbekannt - 01.12.2010 17:08

Danke Smile.
Werde vielleicht mal was programmieren so in dieser Art, ein kleines Spiel, mal sehen wie weit ich mit C komme Big Grin.


RE: [TUT] Einfaches Menü in C - TheSnak3 - 01.12.2010 20:26

jap so ein noob wie ich verstehen kein wort weil ich net nachgedacht habe Tongue


RE: [TUT] Einfaches Menü in C - Unbekannt - 01.12.2010 21:08

Funktionieren auch Umlaute?

PHP-Code:
pspDebugScreenPrintf("das ist eine /x81usserung /n"




RE: [TUT] Einfaches Menü in C - Leon54321hn - 03.12.2010 17:32

alda ist das schwer (ich meine ich finde das wirklich schwer)


RE: [TUT] Einfaches Menü in C - _Kai_ - 03.12.2010 17:35

Unbekannt :
Funktionieren auch Umlaute?

PHP-Code:
pspDebugScreenPrintf("das ist eine /x81usserung /n"


Ja warum nicht.

Leon54321hn :
alda ist das schwer


Das Kommentar hättest du dir sparen können.


RE: [TUT] Einfaches Menü in C - Leon54321hn - 03.12.2010 18:15

PSP-Hilfe :
[quote=Unbekannt]

Das Kommentar hättest du dir sparen können.


Was meinst du damit ?


RE: [TUT] Einfaches Menü in C - HacKmaN - 03.12.2010 18:17

Leon54321hn :

PSP-Hilfe :
[quote=Unbekannt]

Das Kommentar hättest du dir sparen können.


Was meinst du damit ?


Es ist nicht schwer, deshalb hättest du dir deinen Kommentar sparen können.


RE: [TUT] Einfaches Menü in C - James_Cutter - 03.12.2010 18:33

yeah PSP-Hilfe Big Grin
schade das ich das mit dem Kompilieren nicht hinbegomme...
Ich könnte das ja mal auf dem pce von meinem bruder machen....
Na ja B2T, ich finde das tut ist gut zu verstehen... und wenn man was nicht weis, dann habe ich hier den ultimativen Geheimtipp für alle, die was nicht wissen...


RE: [TUT] Einfaches Menü in C - Sparky - 08.01.2011 20:00

Funktioniert iwi nicht:

Zitat:
C:\pspsdk\progs\PSPMENÜ>make
psp-gcc -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150 -c
-o main.o main.c
main.c: In function 'SetupCallbacks':
main.c:23: error: stray '\327' in program
main.c:23: error: expected ')' before numeric constant
main.c:23: error: too few arguments to function 'sceKernelCreateThread'
make: *** [main.o] Error 1


Habs mit meiner main.c und der von psp-hilfe versucht -> gleiches problem
hier die zeilen:

Zitat:
int SetupCallbacks(void)
{
int thid = 0;
zeile 23: thid = sceKernelCreateThread("update_thread", CallbackThread, 0×11, 0xFA0, THREAD_ATTR_USER, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}
return thid;
}


EDIT: Fehler gefunden: Es sollte 0x11 und nicht 0×11 heißen


RE: [TUT] Einfaches Menü in C - HyBriDo - 08.01.2011 20:55

Super TuT!!!


RE: [TUT] Einfaches Menü in C - _Kai_ - 08.01.2011 20:59

Ps3.atmega :
EDIT: Fehler gefunden: Es sollte 0x11 und nicht 0×11 heißen


Sorry da muss bei Copy&Paste was schief gelaufen sein, hatte das ja vorher schon auf psp-hilfe.de gepostet. Ich bessere es oben mal aus Wink


RE: [TUT] Einfaches Menü in C - dark-awesome - 19.02.2011 18:11

Super TuT mach aber den Source hätte ich vielleicht ein bisschen übersichtlicher gemacht Wink

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

PSP_MODULE_INFO("test"011);
static 
int running 1;

int exit_callback(int arg1int arg2void *common)
{
  
running 0;

sceKernelExitGame();

return 
0;
}

int CallbackThread(SceSize argsvoid *argp)
{
int cbid;

cbid sceKernelCreateCallback("Exit Callback"exit_callbackNULL);

sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();

return 
0;
}

int SetupCallbacks(void)
{
int thid 0;

thid sceKernelCreateThread("update_thread"CallbackThread0x110xFA0THREAD_ATTR_USER0);

if(
thid >= 0) {
sceKernelStartThread(thid00);
     }
return 
thid;
}

int aktivmenu 0;
int maxmenu 2;
char menu[3][15] = {"Spiel starten","Spiel laden","Spiel beenden"};

void printmenu() {
  
int i;

  for(
i=0;i<maxmenu+1;i++)
  {
    if(
aktivmenu == i)
    {
      
pspDebugScreenPrintf("-> %s\n",menu[i]);
    }

    else
    {
      
pspDebugScreenPrintf("   %s\n",menu[i]);
    }
  }  
}

int main()
{
  
pspDebugScreenInit();
  
SetupCallbacks();
  
SceCtrlData pad;
  
int button 0;
  
printmenu();
  while(
running)
  {
    
sceCtrlReadBufferPositive(&pad1);

    if((
pad.Buttons PSP_CTRL_DOWN) && (aktivmenu != maxmenu) && (button == 0))
    {
      
aktivmenu++;
      
pspDebugScreenClear();
      
printmenu();
    }

    if((
pad.Buttons PSP_CTRL_UP) && (aktivmenu != 0) && (button == 0))
    {
      
aktivmenu-=1;
      
pspDebugScreenClear();
      
printmenu();
    }

    if((
pad.Buttons PSP_CTRL_DOWN) || (pad.Buttons PSP_CTRL_UP))
    {
      
button 1;
    }
    else
    {
      
button 0;
    }

    if((
aktivmenu == 2) && (pad.Buttons PSP_CTRL_CROSS))
    {
      
sceKernelExitGame();
    }
  }

return 
0;


So hätte ich ihn geschrieben xD


RE: [TUT] Einfaches Menü in C - _Kai_ - 19.02.2011 18:30

stehn :
So hätte ich ihn geschrieben xD


Ich habs mal überflogen aber komm auf die schnelle einfach nicht drauf, was hast du denn geändert ?


RE: [TUT] Einfaches Menü in C - dark-awesome - 19.02.2011 18:46

Ne ich mein so ist der Code übersichtlicher Wink

Weil es immer bei solchen langen Codes schnell un übersichtlich wird Wink

War ja nur ein kleiner Verbesserungsvorschlag ^^


RE: [TUT] Einfaches Menü in C - _Kai_ - 19.02.2011 18:48

stehn :
Ne ich mein so ist der Code übersichtlicher Wink

Weil es immer bei solchen langen Codes schnell un übersichtlich wird Wink

War ja nur ein kleiner Verbesserungsvorschlag ^^


Vielen vielen Dank was würde ich ohne dich nur machen Wink


RE: [TUT] Einfaches Menü in C - vielesysteme - 05.07.2011 15:56

Gibts eigentlich ne Möglichkeit, die Position vom Text auf dem Display genau zu bestimmen, mit X und Y?
Ich könnt mir vorstellen, dass es ein Bisschen kompliziert ist, die Position des Textes immer mit \n und leerzeichen zu bestimmen...


RE: [TUT] Einfaches Menü in C - HacKmaN - 05.07.2011 16:13

vielesysteme :
Gibts eigentlich ne Möglichkeit, die Position vom Text auf dem Display genau zu bestimmen, mit X und Y?
Ich könnt mir vorstellen, dass es ein Bisschen kompliziert ist, die Position des Textes immer mit \n und leerzeichen zu bestimmen...


pspDebugScreenSetXY Wink

Ist aber, soweit ich weiß, nicht in Pixel sondern in in Schriftzeichen... ein Zeichen... ein Zeichen ist in pspDebug (soweit ich mich erinnern kann) 7 mal 8 Pixel groß.

Du kannst also mit

Code:
pspDebugScreenSetXY(x_pos * 7, y_pos * 8);


Die genaue Bildschirmposition in Pixel bestimmen.


RE: [TUT] Einfaches Menü in C - 3m!n - 05.07.2011 16:16

vielesysteme :
Gibts eigentlich ne Möglichkeit, die Position vom Text auf dem Display genau zu bestimmen, mit X und Y?
Ich könnt mir vorstellen, dass es ein Bisschen kompliziert ist, die Position des Textes immer mit \n und leerzeichen zu bestimmen...


Hallo,

zwar hattest du schon einen Thread ( ein Thema ) erstellt, wo auch geantwortet wurde,aber doppelt hält besser Wink

MfG
3m!n