Antwort schreiben  Thema schreiben 
Verfasser Nachricht
knopper
Halbprofi
***


Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 58
Beitrag: #1
xPSP  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?

Code:
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
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


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

Status: Offline
Danke erhalten: 3319
Beitrag: #2
xPSP  RE: Tastaturpuffer löschen

knopper :
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?

Code:
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));
Wink
Aber dass geht viel einfacher... machs einfach so:

Code:
// 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 Smile

Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2010 13:11 von HacKmaN.

24.08.2010 13:06
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
-blue7 (Aug-24-2010), scheissaue (Aug-24-2010), knopper (Aug-24-2010)
knopper
Halbprofi
***


Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 58
Beitrag: #3
xPSP  RE: Tastaturpuffer löschen

@ HacKmaN
JA, genau das isses. DANKE!!! Funzt ausgezeichnet!!! thumb


PSP 3004, FW 6.6
24.08.2010 13:59
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


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

Status: Offline
Danke erhalten: 3319
Beitrag: #4
xPSP  RE: Tastaturpuffer löschen

knopper :
@ HacKmaN
JA, genau das isses. DANKE!!! Funzt ausgezeichnet!!! thumb


Smile

24.08.2010 14:14
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
knopper
Halbprofi
***


Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 58
Beitrag: #5
xPSP  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
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
anmabagima
Ex-Developer
****


Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 530
Beitrag: #6
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
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
knopper (Aug-24-2010)
knopper
Halbprofi
***


Beiträge: 135
Gruppe: User
Registriert seit: Apr 2010

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

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP Bildshirmausgabe löschen abbadoon 4 1.211 16.01.2011 00:35
Letzter Beitrag: abbadoon
xPSP LUA: Dateien im flash löschen? philix 10 3.097 10.07.2009 12:06
Letzter Beitrag: philix

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




» zum Seitenanfang