|
Verfasser |
Nachricht |
vielesysteme
Junior Mitglied
Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011
Status:
Offline
Danke erhalten: 4
|
Textposition bestimmen?
Also, ich wollte nur mal wissen, ob man die position vom Text genau, also mit X und Y, bestimmen kann, oder ob das nur mit sehr, sehr vielen \n und leerzeichen geht? Das wär nämlich echt nervig.
Vielleicht bin ich zu verwöhnt vom DS-Programmieren ...
#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
|
|
05.07.2011 16:06 |
|
|
|
3m!n
Legende
Beiträge: 1.652
Gruppe: User
Registriert seit: Aug 2010
Status:
Offline
Danke erhalten: 951
|
RE: Textposition bestimmen?
Mit pspDebugScreenSetXY
3m!n
|
|
05.07.2011 16:10 |
|
Folgende User bedanken sich: |
|
vielesysteme
Junior Mitglied
Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011
Status:
Offline
Danke erhalten: 4
|
RE: Textposition bestimmen?
Gibts auch pspDebugScreenClear?
#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
|
|
05.07.2011 16:34 |
|
|
|
3m!n
Legende
Beiträge: 1.652
Gruppe: User
Registriert seit: Aug 2010
Status:
Offline
Danke erhalten: 951
|
RE: Textposition bestimmen?
Guten Tag,
ja es gibt auch pspDebugScreenClear.
pspDebugScreenClear(void)
Ich würde dir mal empfehlen die pspdebug.h durch zu lesen.
Auch Online verfügbar:
Online Version!
MfG
3m!n
|
|
05.07.2011 16:37 |
|
Folgende User bedanken sich: |
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: Textposition bestimmen?
http://pspking.de/forum/showthread.php?tid=27623&pid=531399#pid531399
pspDebugScreenSetXY
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
pspDebugScreenSetXY(x_pos * 7, y_pos * 8);
die genaue Bildschirmposition in Pixel bestimmen.
mfg
Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2011 17:09 von HacKmaN.
|
|
05.07.2011 17:08 |
|
Folgende User bedanken sich: |
|
vielesysteme
Junior Mitglied
Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011
Status:
Offline
Danke erhalten: 4
|
RE: Textposition bestimmen?
alles schön und gut, nur schreibt mein Programm immer mehr Xe, bis der Bildschirm voll ist, dabei sollte man nur das X mit den D-Pad bewegen können:
#include <pspkernel.h> #include <pspdebug.h> #include <pspctrl.h>
#define printf pspDebugScreenPrintf
/* Define the module info section */ PSP_MODULE_INFO("Zähler", 0, 1, 1);
/* Define the main thread's attribute value (optional) */ PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
/* Exit callback */ int exit_callback(int arg1, int arg2, void *common) { sceKernelExitGame(); 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, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); }
return thid; }
int main() { pspDebugScreenInit(); SetupCallbacks(); SceCtrlData pad; //sceCtrlReadBufferPositive(&pad, 1); int x, y; x=240; y=140; while(1) { sceCtrlReadBufferPositive(&pad, 1); pspDebugScreenSetXY(x,y); printf("X"); if (pad.Buttons & PSP_CTRL_UP){ pspDebugScreenClear(); y--; } else if (pad.Buttons & PSP_CTRL_DOWN){ pspDebugScreenClear(); y++; } else if (pad.Buttons & PSP_CTRL_LEFT){ pspDebugScreenClear(); x--; } else if (pad.Buttons & PSP_CTRL_RIGHT){ pspDebugScreenClear(); x++; } }
return 0; }
#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
|
|
05.07.2011 17:13 |
|
|
|
dark-awesome
stehn
Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010
Status:
Offline
Danke erhalten: 2192
|
RE: Textposition bestimmen?
1. Müsste bei deinen Code das ScreenClear nach dem du die Variable erhöht hast kommen. ^^
2. Mit der Graphics.h kann man den Text mit X,Y Koordinaten ausgeben. Ich finde nur gerade den Link nicht Google einfach danach ok :)
extern void printTextScreen(int x, int y, const char* text, u32 color);
Das könnte man dann so machen:
int x = 20, y = 20;
...code...
printTextScreen( x, y, "X", 0xFFFFFFFF);
...code...
if(pad.Buttons & PSP_CTRL_UP)
{
x-=4;
clearScreen(0xFF000000);
}
...code...
PS: Und schau mal was Hackman geschrieben hat ^^
Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2011 02:10 von dark-awesome.
|
|
05.07.2011 23:41 |
|
|
|
vielesysteme
Junior Mitglied
Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011
Status:
Offline
Danke erhalten: 4
|
RE: Textposition bestimmen?
PS: Und schau mal was Hackman geschrieben hat ^^
Soll das heißen, man MUSS das mit dem *7 und *8 machen, auch, wenn man die Textposition nicht in Pixel, sondern in Kacheln/Zeichenlänge angeben will?
#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2011 10:28 von vielesysteme.
|
|
06.07.2011 10:26 |
|
|
|
dark-awesome
stehn
Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010
Status:
Offline
Danke erhalten: 2192
|
RE: Textposition bestimmen?
PS: Und schau mal was Hackman geschrieben hat ^^
Soll das heißen, man MUSS das mit dem *7 und *8 machen, auch, wenn man die Textposition nicht in Pixel, sondern in Kacheln/Zeichenlänge angeben will?
Ne ^^
|
|
06.07.2011 10:38 |
|
|
|
vielesysteme
Junior Mitglied
Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011
Status:
Offline
Danke erhalten: 4
|
RE: Textposition bestimmen?
Es klappt immer noch nicht.
Scheinbar wird bei jedem Durchlauf der Schleife x erhöht, und nach einiger Zeit dann ist der Bildschrim voll mit Xen. Früher, als ich das mit dem Clear noch nich hatte, wurde, wenn man eine Taste gedrückt hielt, immer abwechselnd mit dem X ein leerzeichen angezeigt, so konnte man schöne Bilder malen ^^
Aber jetzt geht nicht mal mehr das... Irgendwas klappt da nicht, ich dachte, wenn ich ein X ausgebe, dann wird die Position des nächsten Zeichens automatisch um 1 erhöht, drum setz ich die Position für das neue X auf die vorherigen Koordinaten, damit es an der gleichen Stelle erscheint, wie das alte X, aber DAS klappt nicht.
#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
|
|
06.07.2011 10:48 |
|
|
|
dark-awesome
stehn
Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010
Status:
Offline
Danke erhalten: 2192
|
RE: Textposition bestimmen?
Es klappt immer noch nicht.
Scheinbar wird bei jedem Durchlauf der Schleife x erhöht, und nach einiger Zeit dann ist der Bildschrim voll mit Xen. Früher, als ich das mit dem Clear noch nich hatte, wurde, wenn man eine Taste gedrückt hielt, immer abwechselnd mit dem X ein leerzeichen angezeigt, so konnte man schöne Bilder malen ^^
Aber jetzt geht nicht mal mehr das... Irgendwas klappt da nicht, ich dachte, wenn ich ein X ausgebe, dann wird die Position des nächsten Zeichens automatisch um 1 erhöht, drum setz ich die Position für das neue X auf die vorherigen Koordinaten, damit es an der gleichen Stelle erscheint, wie das alte X, aber DAS klappt nicht.
Mach mal in die while noch pspDebugScreenClear(); weil es ist ja logisch das es immer wieder X ausgibt. Also sollte der Bildschirm dann irgendwann so aussehen:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Mit pspDebugScreenClear(); kannst du das aber verhindern.
Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2011 10:52 von dark-awesome.
|
|
06.07.2011 10:52 |
|
|
|
vielesysteme
Junior Mitglied
Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011
Status:
Offline
Danke erhalten: 4
|
RE: Textposition bestimmen?
1. Versteh ich jetzt das Problem nicht und
2. Flimmert das X jetzt in der linken oberen Ecke vor sich hin.
#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
|
|
06.07.2011 10:59 |
|
|
|