Eingabemethode - Erster Test mit Windows + SDK


kilroy

Member
Joined
Nov 6, 2005
Messages
341
So, ich hab mal was zusammengehämmert und ein paar Ideen aus dem Thread http://forum.gp2x.de/viewtopic.php?t=179 , besonders von Octoate zusammengeführt...

Herausgekommen ist ein mit SDL programmiertes Mini Ding unter Windows, was sich hoffentlich später direkt auf den GP2X bringen lässt.

Jeder, der es sich mal ansehen will, mal hier schauen: http://rz-home.de/~kilroy/gp2x/libinput/libinput-0.0.1.rar

Man braucht: Windows, WinRAR und (optional) einen Joystick

Am Joystick kann man den CoolieHat oder den analogen Joystick verwenden (falls kalibriert).

Sollte man keinen Joystick haben, so kann man die Zifferntasten rechts verwenden sowie die Tasten asdf für die Buttons 1-4

Button 1: Erster Klick: Aüßere Auswahl einrasten, Zweiter Klick: Zeichen auswählen
Button 2: Auswahl abbrechen
Button 3: Backspace
Button 4: Enter

Die Texte sowie eine Hilfe werden in dem Textfenster ausgegeben.

Und jetzt mal los mit dem Kommentaren, weiteren Ideen, ...
 
Hi,
hab mich grad erst registriert, lese aber schon ne Weile mit. Benutze kein Windows, kann dein Programm also nicht testen. Du hast geschrieben, dass die Bibliothek SDL verwenden soll. Das wäre für mich ein Grund, sie nicht zu benutzen. Für Ein-/Ausgabe und Text-Rendering hab ich meinen eigenen Code, den ich auch für die Texteingabe benutzen will. Ausserdem wäre die Bibliothek, so wie du sie schreiben willst, kaum konfigurierbar (Schriftart/-farbe, Position/Größe der Zeichen, ...). Ich würde das Interface etwa so machen:
Code:
<i>
</i>const std::string& lTree(); // gibt die Zeichen links zurück
const std::string& rTree(); // gibt die Zeichen rechts zurück
const std::string& text(); // bisher geschriebener Text
void selectLeft(); // linken Teilbaum auswählen
void selectRight(); // rechten Teilbaum auswählen
void reset(); // Eingabe zurücksetzten
// Zeugs für Eingabemodus(Groß-/Kleinschreibung, Zahlen, ...), zuletzt geschriebenes Wort, und was man sonst noch so braucht.

So kann jeder Programmierer selbst entscheiden, wie die Texteingabe aussieht. Wenn du noch Hilfe brauchst, sag Bescheid.
 
Arbeite gerade an der Linux Version (klappt auch schon). Benutze BFont/SFont für Schriften, d.h. ich kann jeden beliebigen Font benutzen und das recht flott (blitting).

Schon jetzt kann ich jede beliebige Farbe und jede beliebige Größe benutzen (in der Tat habe ich es schon mit X fonts probiert) :)

Linux Version kommt gleich...
 
Man muss alle Dateien auspacken (oh, sorry das das auch ein RAR war) und dann IN dem Verzeichnis starten, sonst findet er das Fontfile nicht...

Klappt das so bei Dir, Ben?
 
Habs nicht per Console, also nicht in dem Verzeichnis gestartet. ;) So gehts logischerweise.

Zur Eingabemethode: Wirkt sehr kompliziert, aber könnte nach einer kurzen Eingewöhnungszeit echt sehr komfortabel sein.
 
Ich ging davon aus, dass du an der Morse-Methode arbeitest. Ich schreib mir grad ne eigene Klasse für Bitmap-Fonts. Hab früher SDL_ttf benutzt, aber die hat halt ihre Macken, ausserdem sind Bitmap-Fonts einfacher zu erstellen. Zur Begründung meines Ansatzes mal ein Beispiel:
Du hast ein RPG, läufst gerade mit deinem Helden rum und sprichst einen NPC an, der dich nach deinem Namen fragt. Jetzt sollen links und rechts die möglichen Zeichen zur Eingabe angezeigt werden, unten steht der bisher geschriebene Text und in der Mitte bleibt die normale Spiel-Ansicht inklusive Animationen.
Das wäre mit "Blidschirm einfrieren, Text eingeben und zurückkehren" nicht möglich. Sobald meine Textengine fertig ist, schreib ich mal ne Demo.
 
@lupi: Ja, das ist richtig so - Das wäre problematisch. Versuche nur beim Fontladen die BFont++/SFont fonts zu verwenden - wäre praktisch, weil man die einfach aus TTF&co erstellen kann und auch sehr flexibel weitergeben kann. SDL_ttf ist imho overkill und viel zu langsam :)

@schickesteil: Ohne Gedrückthalten muss man Mehrfach den Stick bewegen.

Beispiel: Man ist ganz links und will nach rechts: Also zwei mal rechts drücken? Unbequem und langsam... Aber man kann es ja mal probieren. Soweit ich zufrieden bin mit dem Quelltext und ein bissel aufgeräumt habe, veroeffentliche ich natuerlich auch den Source und dann können wir mal ein bissel rumdoktern...

Wie gefallen die Anordnung der Buchstaben? Intuitiv genug?
 
@Ben: Ja, ich hatte auch ein bissel gebraucht, aber nach ein paar Stunden fluppt es recht gut :)

Werde mir demnächst noch Edgewrite ansehen und noch eine Miniaturversion (nur mit einer Zeile á 3 Boxen, die dann wechseln bei Up/Down) schreiben - die sollte noch intuitiver sein.

@lupi: Das Morsealphabet ist mir zu lang: Viel zu viele Bewegungen/Klicks und Fehler führen zu einer langen "redo" phase...
 
@kilroy: Super Sache! Ist zwar durch die Steuerung sehr gewoehnungsbeduerftig, aber halt reine Gewoehnungssache.
Besser und platzsparender ist es halt, wenn man zwei Buttons zum Durchschalten der Matrizen verwendet und mit dem Joystick innerhalb der Matrix den Buchstaben auswaehlt - per Knopfdruck werden die dann bestaetigt. Das wuerde dann halt zur Rotation passen. Waere aber vielleicht auch wieder eine Alternative, die man da waehlen koennte.

@jix: kilroy baut doch die Bibliothek gerade erst auf, da gibts noch einige Arbeit und sicherlich einige Ideen, die man da umsetzen kann. Solange die Bibliothek noch im Entstehen ist, lohnt sich die Herausgabe des Codes auch noch nicht. Nebenbei wuerde mich die Bibliothek auch fuer die Dreamcast interessieren. Da gibts auch SDL und so eine Steuerung waere dafuer auch interessant =).
 
Wenn er binaries rausgibt kann er auch den code rausgeben schließlich will er ja das es getestet wird und wenn ichs testen will muss ich es kompilieren können da ich weder linux noch windows benutze.
 
@jix: wie gesagt, sobald der source mir gefaellt und die multiplatform Makefile's stehen, gebe ich ihn auch heraus :)

@Octoate:Werde ich ausprobieren. Vielleicht geht das sogar noch besser. Mal sehen wieviel Zeit ich morgen abend noch habe!
 
Ich hab jetzt mal ne Demo geschrieben, die den Baum von schickesteil benutzt.
Source & Linux-Binary gibts hier: http://www.stud.uni-karlsruhe.de/~uubej/text-demo-1.tar.bz2
Steuerung:
links/rechts: linkes/rechtes oberes Zeichen auswählen und in linken/rechten Ast absteigen. Kann man nicht tiefer in den Baum, wird das Zeichen geschrieben.
runter: ausgewähltes Zeichen schreiben, Rückkehr zur Wurzel, Auswahl bleibt erhalten
hoch: Befindet man sich in der Wurzel des Baums, wird das letzte Zeichen gelöscht, ansonsten landet man bei der Wurzel.
space/return: wie gewohnt
escape: Programm beenden
 
@lupi wow das ging ja schnell ist schon mal ganz ordentlich hab als test mal
SCHIFFFAHRT eingegeben.
geht schon ganz gut.
wenn wir die diagonalen des sticks noch benutzen wollen müssen die zeichen
aber anders angeordnet werden.
dann sollten wir die direkt erreichbaren zeichen auch farblich hervorheben.

ich hab heut abend n bissel zeit und werd mir mal den code anschauen.
greetz
 
Super Sache!
Waere schoen, wenn das wirklich alles in eine Bibliothek zusammengefuegt werden koennte. Evtl. waere das doch jetzt der richtige Zeitpunkt ein Sourceforge / Berlios Projekt aufzusetzen, damit man ein CVS / Subversion Repository hat und man besser zusammenarbeiten kann?
 
Back
Top