Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Schnitter

Treue Seele

  • »Schnitter« ist der Autor dieses Themas

Beiträge: 141

Wohnort: Remshalden

Beruf: Schüler

  • Private Nachricht senden

1

03.05.2007, 21:03

Menü - Verständnisproblem

Ich bin gerade dabei, ein Menü für das SPiel am Ende zu programmieren.
Leider fehlt da ein wenig das Verständnis:

Wie mache ich das?
Genauer: ich will das Menü so machen, dass ich per Pfeiltasten die Einträge "auswählen" kann, nicht, per 1 oder 2 starten oder beenden. Erst dachte ich, ich mache mir für jeden aktivierten Menüpunkt ein Hintergrundbild...aber das ist irgendwie doof^^ Naja, dann eben mit Textausgaben...Textausgaben? wie geht das?

Dann 2tes Problem: Ingame-Menü...wie soll ich das anzeigen? ich will natürlich einen Menüpunkt "fortsetzen" machen, damit man das Spiel einfach fortsetzen kann...also einfach bei Asteroiden, Player und Shots eine m_bCanMove bool-Var einfügen und immer abfragen, ob sie sich überhaupt bewegen dürfen, und wenn das Menü angezeigt wird, dürfen sie das eben nicht. Aber, wie zeige ich das Menü denn _generell_ an? soll ich das Surface/den Screen einfach mit einem neuen Hintergrundbild "übermalen"? Ich blick da nicht ganz durch.

Hoffe, mir kann jemand einen Denkanstoß geben ;)


MfG

Powerpaule

Treue Seele

Beiträge: 162

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

2

03.05.2007, 21:10

Jo... also für Textausgaben brauchst du schon mal die SDL_ttf.dll, mit der du texte in allen möglichen Farben und Formen ausgeben kannst -dazu findest du auch genügend tutorials im internet. (die datei musst du dir auch extra runterladen)

Ansonsten erstellst du für's Menü einfach eine neue Klasse, so ähnlich wie die Klasse CGame. Dann wär es allerdings besser, das Menü schon am anfang erscheinen zu lassen - das ist dann einfacher^^
Sieht dann halt so aus dass du in main.cpp nich ne Instant der klasse CGame, sondern erst von CMenu erstellst, und dann in CMenu eben beim auswählen von "Spiel starten" oder so erstellst du dann die Instanz der CGame. wenn das Spiel nun vorbei ist - also die Schleife beendet wird - landest du automatisch wieder beim Menü.

Das mit den einträgen kannst du beispielsweiseper Array machen und speicherst dann noch irgendwo ab, welcher Eintrag grad ausgewählt wurde. Wenn man nach unten drückt, wird der eintrag halt +1 gerechntet usw. Den eintrag kannst du ja dann andersfarbig darstellen.

Bösewicht

unregistriert

3

03.05.2007, 21:18

Ich habe es mir einfach gemacht und die einzelnen Punkte:
"Spiel Starten"
"Info"

usw. als Sprite angelegt und dann einfach mit ein weiterem Sprite ein rotes Kästchen als auswahlfeld benutzt.
Wie gesagt, sehr einfach, aber da ich noch nicht so viel konnte eine einfache Lösung ;)

Schnitter

Treue Seele

  • »Schnitter« ist der Autor dieses Themas

Beiträge: 141

Wohnort: Remshalden

Beruf: Schüler

  • Private Nachricht senden

4

03.05.2007, 21:25

Ok, ich werd' mich mal über die Schriften informieren ;)

Das mit dem Menü am Anfang war schon klar, hatte ich auch so vor.

Jetzt wäre da noch das Problem mit dem Anzeigen.


Und mal was anderes: Wie mache ich das mit der SDL so, dass das Spiel auch auf anderen Rechnern gespielt werden kann? Kann es im Mom nicht. Muss nur die SDL.dll in den WINDOWS\system32\ Ordner kopiert werden?


MfG

Bösewicht

unregistriert

5

03.05.2007, 21:27

Ja genügt vollkommen, du kannst sie aber auch zur exe beilegen, dass funzt auch.

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

6

03.05.2007, 21:29

Ich würde eine Aufzählung(enum MenuPoints) erstellen. Und je nachdem welches aktiviert ist, dem Text bspw. eine andere Schiftart geben.

denjo

Treue Seele

Beiträge: 163

Wohnort: BLB

  • Private Nachricht senden

7

03.05.2007, 21:30

Zitat von »"Schnitter"«

Ok, ich werd' mich mal über die Schriften informieren ;)


Teoretisch könntest du es auch mit einer Font-Klasse machen. So hab ich das Problem von Textausgabe gelöst!

Zitat von »"Schnitter"«


Und mal was anderes: Wie mache ich das mit der SDL so, dass das Spiel auch auf anderen Rechnern gespielt werden kann? Kann es im Mom nicht. Muss nur die SDL.dll in den WINDOWS\system32\ Ordner kopiert werden?


Dafür brauchst du noch zwei Zusatzlibs. Weiß jetzt nicht genau wie sie heißen, kann dir den Namen aber gleich nennen.

EDIT: Oh sry, zu spät...kurze Frage, welche IDE benutzt du? VC 6.0 AE?

mfg denjo
"Irren ist menschlich, Vergeben göttlich."
- Alexander Pope -

Schnitter

Treue Seele

  • »Schnitter« ist der Autor dieses Themas

Beiträge: 141

Wohnort: Remshalden

Beruf: Schüler

  • Private Nachricht senden

8

03.05.2007, 21:32

Zitat



EDIT: Oh sry, zu spät...kurze Frage, welche IDE benutzt du? VC 6.0 AE?

VC++ 2005 Express.

denjo

Treue Seele

Beiträge: 163

Wohnort: BLB

  • Private Nachricht senden

9

03.05.2007, 21:34

Zitat von »"Schnitter"«

Zitat



EDIT: Oh sry, zu spät...kurze Frage, welche IDE benutzt du? VC 6.0 AE?

VC++ 2005 Express.


OK, dann vergess das mit den libs...mach es so, wie du es vorher vorhattest (dachte nur erst, du hättest VC++ 6.0 AE...sry ;)
"Irren ist menschlich, Vergeben göttlich."
- Alexander Pope -

Schnitter

Treue Seele

  • »Schnitter« ist der Autor dieses Themas

Beiträge: 141

Wohnort: Remshalden

Beruf: Schüler

  • Private Nachricht senden

10

03.05.2007, 21:42

Hm, ich habe ja die SDL.lib in WINDOWS\system32\ kopiert...die findet er ja auch perfekt, aber wo kriegt der Linker denn die sdlmain.lib her?
Das mit der sdl_ttf.dll klappt auch nicht so ganz :-/
Hab sie zwar bei Projekte->Einstellungen->Linker->Eingabe->Zusätzliche Abhängigkeiten eingetragen und auch in das oben genannte Verzeichnis kopiert, finden tut er sie trotzdem nicht :-/

Werbeanzeige