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

11

30.06.2013, 12:49

ich möchte mit dem button eine funktion aufrufen wie z.b spiel laden, Optionen u.s.w man weiß ja nicht, welcher button später welche funktion bekommt, möchte dieses Menü ja so Programmieren, das man es schnell und einfach an neue Projekte anpassen kann.

Wie wird denn normalerweise b.z.w oft ein Menü mit solchen funktionen erstellt?

12

30.06.2013, 14:07

Na in deiner Menu-Klasse könntest du die Buttons in einem Container (z.B. std::map<string, Button*>) verwalten, dass du es später so verwendest:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
Menu menu;
...
menu.addButton("start");
menu.addButton("options");
...
menu.update();

if(menu.button("start").clicked())
{
    ...
}
...
menu.draw();


Die Klasse wär dann auch in anderen Projekten einsetzbar. Das ist es zumindest, was mir im Moment dazu einfällt.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

13

30.06.2013, 14:24

Andererseits gibt es Funktionspointer. Vergleichbar wird es zum Beispiel bei .Net gelöst. Auch wenn delegates bei keine wirklichen Funktionspointer sind, kannst du es damit lösen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

14

30.06.2013, 15:19

wie funktioniert das mit funktionspointer, die übernehmen die adresse der funktion wie normal.7

das heißt ich könnte z.b
textdatei:
funktion();

string test;
test<<Input(auslesen der funktion (name))

und dann sagen

funktionspointer (name=test)


würde das so funktionieren=?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

15

01.07.2013, 15:44

Ich verstehe kein Wort. Ein Funktionszeiger ist ein Zeiger auf eine Funktion. Deine Buttonklasse bekommt zum Beispiel so einen Funktionspointer. Dieser wird dann auf die Adresse deiner gewünschten Funktion gesetzt. So kannst du dann die gewünschte Funktion aufrufen. Guck doch einfach mal bei Google nach "Funktionszeiger" oder "function pointer".
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige