Ich schreibe ein Programm, in dem irgendwann ein Graph gezeichnet und auf dem Bildschirm angezeigt wird. Der Benutzer muss dann 'y' oder 'n' drücken, um das Diagramm zu akzeptieren oder abzulehnen. Meine aktuelle Lösung verwendet die PsychToolbox (die tatsächliche Lösung muss nicht), die einen Befehl enthält, der "KbCheck" genannt wird, der zum Zeitpunkt des Aufrufs des Status aller Tastaturtasten überprüft. Mein Code sieht so aus:
%Vor%Das Problem ist, dass das System wirklich "hängt", bis eine Taste gedrückt wird. Im Idealfall könnte ich scrollen, zoomen und allgemein mit den Grafiken interagieren, die auf dem Bildschirm gezeichnet werden, so dass ich wirklich entscheiden kann, ob ich "y" oder "n" drücken möchte!
Ich habe versucht, 'drawnow; in die while-Schleife oben, aber das funktioniert nicht: Ich kann immer noch nicht mit den gezeichneten Graphen interagieren, bis nachdem ich sie akzeptiert oder abgelehnt habe.
Die Lösung muss nicht die PsychToolbox verwenden; Ich nehme an, es gibt viele andere Möglichkeiten da draußen?
Danke
Ich würde die Funktion input
verwenden:
Obwohl es zugegebenermaßen zwei Tasten drücken muss (y dann Enter), eher die eine.
Sie möchten waitforbuttonpress
nicht verwenden, da es die Zahl gui sperrt (kein Zoomen, Schwenken usw.).
pause
kann dazu führen, dass das Befehlsfenster den Fokus von der Figur stehlen kann.
Die Lösung, die ich am besten finde, ist, die Figur mit einer Null-Taste zu öffnen, um Fokusprobleme zu vermeiden:
%Vor%und warten Sie dann auf CurrentCharacter Eigenschaftenänderung:
%Vor%Warten Sie, bis Sie die Taste drücken oder mit der Maus klicken:
Beispiel:
%Vor%für weitere Informationen besuchen Sie: Ссылка
Der Befehl waitforbuttonpress ist gut, wird aber durch einen Mausklick oder einen Tastendruck ausgelöst. Wenn Sie möchten, dass es nur durch einen Tastendruck ausgelöst wird, können Sie den folgenden Hack verwenden:
%Vor%