Antwort schreiben  Thema schreiben 
Verfasser Nachricht
vielesysteme
Junior Mitglied
**


Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011

Status: Offline
Danke erhalten: 4
Beitrag: #1
xPSP  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 Rolleyes...


#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
05.07.2011 16:06
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
3m!n
Legende
*****


Beiträge: 1.652
Gruppe: User
Registriert seit: Aug 2010

Status: Offline
Danke erhalten: 951
Beitrag: #2
RE: Textposition bestimmen?

Mit pspDebugScreenSetXY Wink

3m!n

05.07.2011 16:10
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
vielesysteme (Jul-5-2011)
vielesysteme
Junior Mitglied
**


Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011

Status: Offline
Danke erhalten: 4
Beitrag: #3
xPSP  RE: Textposition bestimmen?

Gibts auch pspDebugScreenClear?


#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
05.07.2011 16:34
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
3m!n
Legende
*****


Beiträge: 1.652
Gruppe: User
Registriert seit: Aug 2010

Status: Offline
Danke erhalten: 951
Beitrag: #4
RE: Textposition bestimmen?

Guten Tag,

ja es gibt auch pspDebugScreenClear.

Code:
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
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
vielesysteme (Jul-5-2011)
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #5
RE: Textposition bestimmen?

http://pspking.de/forum/showthread.php?tid=27623&pid=531399#pid531399

Ich, im anderen Thread :
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.


mfg

Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2011 17:09 von HacKmaN.

05.07.2011 17:08
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
dark-awesome (Jul-5-2011)
vielesysteme
Junior Mitglied
**


Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011

Status: Offline
Danke erhalten: 4
Beitrag: #6
xPSP  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:

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

#define printf pspDebugScreenPrintf

/* Define the module info section */
PSP_MODULE_INFO("Zähler"011);

/* Define the main thread's attribute value (optional) */
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER THREAD_ATTR_VFPU);

/* 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;
    
//sceCtrlReadBufferPositive(&amp;pad, 1); 
    
    
int xy;
    
x=240;
    
y=140;
    
    while(
1) {
        
sceCtrlReadBufferPositive(&amp;pad1);
        
pspDebugScreenSetXY(x,y);
        
printf("X");
        if (
pad.Buttons &ampPSP_CTRL_UP){
            
pspDebugScreenClear();
            
y--;
        } 
        else if (
pad.Buttons &ampPSP_CTRL_DOWN){
            
pspDebugScreenClear();
            
y++;
        } 
        else if (
pad.Buttons &ampPSP_CTRL_LEFT){
            
pspDebugScreenClear();
            
x--;
        } 
        else if (
pad.Buttons &ampPSP_CTRL_RIGHT){
            
pspDebugScreenClear();
            
x++;
        }      
    }

    return 
0;


#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
05.07.2011 17:13
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #7
xPSP  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 :)

Code:
extern void printTextScreen(int x, int y, const char* text, u32 color);


Das könnte man dann so machen:

Zitat:
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 ^^


West Zeit / Westside

Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2011 02:10 von dark-awesome.

05.07.2011 23:41
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
vielesysteme
Junior Mitglied
**


Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011

Status: Offline
Danke erhalten: 4
Beitrag: #8
xPSP  RE: Textposition bestimmen?

Zitat:
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? Noidea


#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
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #9
xPSP  RE: Textposition bestimmen?

vielesysteme :

Zitat:
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? Noidea


Ne ^^


West Zeit / Westside

06.07.2011 10:38
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
vielesysteme
Junior Mitglied
**


Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011

Status: Offline
Danke erhalten: 4
Beitrag: #10
xPSP  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.
Noidea Noidea Noidea


#ifdef WIN32
#define KILL undef
#KILL WIN32
#endif
06.07.2011 10:48
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #11
xPSP  RE: Textposition bestimmen?

vielesysteme :
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.
Noidea Noidea Noidea


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.


West Zeit / Westside

Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2011 10:52 von dark-awesome.

06.07.2011 10:52
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
vielesysteme
Junior Mitglied
**


Beiträge: 32
Gruppe: User
Registriert seit: Jun 2011

Status: Offline
Danke erhalten: 4
Beitrag: #12
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
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang