|
Verfasser |
Nachricht |
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
Tastaturpuffer löschen
Hey,
möchte diverse Fotodateien ansehen und beim Drücken der rechten Pfeiltaste zum nächsten Bild wechseln. Um jedes Mal mit derselben Taste ein Foto zu wechseln, müsste auch der Tastaturpuffer auf 0 oder zurückgesetzt werden. Will aber nicht funktionieren. Einmal die rechte Pfeiltaste gedrückt und auf die Schnelle beim letzten Bild gelandet. Lässt sich der Tastaturpuffer löschen oder geht's nur mit zusätzlichen Zeigern?
while(1){
sceCtrlReadBufferPositive(&pad, 1);
if (pad.Buttons != 0){
if (pad.Buttons & PSP_CTRL_RIGHT) {
break; }
}
}
Bild1:
while(1){
sceCtrlReadBufferPositive(&pad, 1);
if (pad.Buttons != 0){
if (pad.Buttons & PSP_CTRL_RIGHT) {
break; }
}
}
Bild2:
usw.
PSP 3004, FW 6.6
|
|
24.08.2010 12:59 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: Tastaturpuffer löschen
Hey,
möchte diverse Fotodateien ansehen und beim Drücken der rechten Pfeiltaste zum nächsten Bild wechseln. Um jedes Mal mit derselben Taste ein Foto zu wechseln, müsste auch der Tastaturpuffer auf 0 oder zurückgesetzt werden. Will aber nicht funktionieren. Einmal die rechte Pfeiltaste gedrückt und auf die Schnelle beim letzten Bild gelandet. Lässt sich der Tastaturpuffer löschen oder geht's nur mit zusätzlichen Zeigern?
while(1){
sceCtrlReadBufferPositive(&pad, 1);
if (pad.Buttons != 0){
if (pad.Buttons & PSP_CTRL_RIGHT) {
break; }
}
}
Bild1:
while(1){
sceCtrlReadBufferPositive(&pad, 1);
if (pad.Buttons != 0){
if (pad.Buttons & PSP_CTRL_RIGHT) {
break; }
}
}
Bild2:
usw.
memset(&pad, 0, sizeof(SceCtrlData));
Aber dass geht viel einfacher... machs einfach so:
// bla bla bla
Image *images = 0;
images = (Image *)malloc(anzahl_der_bilder * sizeof(Image));
if(!images)
// Fehler beim Speicher reservieren, nicht weiter machen!
// die Bilder einlesen
int index = 0;
while(!(pad.Buttons & ABBRUCH_TASTE))
{
// images[index] anzeigen
memset(&pad, 0, sizeof(SceCtrlData));
sceCtrlReadBufferPositive(&pad, 1);
if(pad.Buttons & PSP_CTRL_RIGHT & (index < anzahl_der_bilder))
index++;
if(pad.Buttons & PSP_CTRL_LEFT & (index >= 0))
index--;
// bla bla bla
sceKernelWaitThread(300000);
};
Damit kannst du auch nach links zurück gehen
Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2010 13:11 von HacKmaN.
|
|
24.08.2010 13:06 |
|
Folgende User bedanken sich: |
|
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
RE: Tastaturpuffer löschen
@ HacKmaN
JA, genau das isses. DANKE!!! Funzt ausgezeichnet!!!
PSP 3004, FW 6.6
|
|
24.08.2010 13:59 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: Tastaturpuffer löschen
@ HacKmaN
JA, genau das isses. DANKE!!! Funzt ausgezeichnet!!!
|
|
24.08.2010 14:14 |
|
|
|
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
RE: Tastaturpuffer löschen
Das Löschen des Tastaturpuffers funzt ausgezeichnet. Allerdings darf man die Taste nicht zu lange drücken, weil ansonsten die nächsten Bilder automatisch nachgeladen werden. Läßt sich das verhindern?
PSP 3004, FW 6.6
|
|
24.08.2010 15:51 |
|
|
|
anmabagima
Ex-Developer
Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 530
|
RE: Tastaturpuffer löschen
Hi,
so weit ich weiß nur so, dass du dir die zuletzt gedrückte Taste in einer weiteren variable merkst und nur auf einen neuen tastendruck reagierst wenn die taste abweichend der zuletzt gedrückten ist bzw. eine gewisse Zeit vergangen ist...
|
|
24.08.2010 17:09 |
|
Folgende User bedanken sich: |
|
knopper
Halbprofi
Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 58
|
RE: Tastaturpuffer löschen
@anmabagima
Dank dir für den Tipp. Werd's mal ausprobieren...
Edit: Habe die nötige Tastenverzögerung mit 'sceDisplayWaitVblankStart' gemacht.
PSP 3004, FW 6.6
Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2010 12:07 von knopper.
|
|
24.08.2010 19:41 |
|
|
|