Du bist nicht angemeldet.

Werbeanzeige

1

24.01.2019, 02:10

mit SDL 2 in einer Konsolenanwendung ein Eingabefeld erzeugen?

So, da bin ich mal wieder :D

Ich bin ja am erweitern der Asteroidenspiels aus dem Buch und habe schon eine Lebensanzeige, Punkteanzeige, Infofenster das zum Start angezeigt wird (wärend dessen werden keine Punkte gezählt, oder leben abgezogen und eine Pausefunktion mit eingebaut.

Nun wollte ich noch ein Highscore mit einbauen, das aus z.b. 10 einträgen besteht und wo man seinen namen eingeben kann (oder dessen kürzel), die dann auch abgespeichert werden, sonst macht das ja keinen Sinn ^^
So eine Funktion habe ich schon bei dem Zahlenratenspiel mit eingebaut und habe im Grunde schon die Funktionalität, die ich in das Asteroidenspiel nur noch mit einbauen, bzw. gegebenenfalls anpassen muss. Allerdings hab ich absolut keine Ahnung wie ich das mit der Namenseingabe machen kann.

Ich möchte das letztendlich nicht über die Konsole eingeben, die ja immer im Hintergrund mit offen ist (kann man diese auch schließen?, obwohl es ja eine konsolenanwendung ist :D also vielleicht in einer anderen Anwendung?), sondern am besten ein neues Fenster öffnen, wo z.b. erst angezeigt wird, das der Highscore geknackt wurde und man seinen Namen eingeben soll. Anchließend wird dann die gesamte Highscoreliste, mit den geänderten Daten angezeigt. Dieses Fenster würde dann im Fokus stehen, womit dann Das Spiel im dem Sinne Pausiert wird, bzw. da dies ja erst passieren soll, wenn man gestorben ist, der Game Over Status so lange aufrecht gehalten werden soll.

Ist dies so mit SDL 2 möglich, bzw. umsetzbar, oder brauch man dafür noch wieder eine andere Bibliothek?

David Scherfgen

Administrator

Beiträge: 10 199

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

24.01.2019, 10:07

Um das Konsolenfenster auszublenden (habe ich in 2 Minuten mit Google gefunden):

C-/C++-Quelltext

1
2
3
4
#include <Windows.h>

// in deiner main-Funktion:
ShowWindow(GetConsoleWindow(), SW_HIDE);


Wenn du Texteingabe haben möchtest, musst du entweder selbst auf die Tastatur-Events reagieren oder dir eine GUI-Library mit Support für SDL suchen (Google ist dein Freund).