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

1

02.11.2003, 21:01

Grafisches Menü in C++

Heho,
kann mir jemand sagen, womit ein grafisches Menü in C++ wie zum Beispiel bei Anno 1503 oder Blobby Volly gemacht wird???

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

2

02.11.2003, 21:25

in C++ bestimmt net :) Nur mit C++ *klugscheiss*

Also das geht folgendermaßen recht easy (wenns net viel sein soll oder Moddingfähig sein soll):

Hier hab ich mal nen Code aus meinem game wo ein Paralellogram in OpenGL gezeichnet wird:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
void drawPara (int x, int y, bool hover)
{
    // Matrix Pushen
    glPushMatrix ();

    // Alphablending Aktivieren
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
    glEnable(GL_BLEND);

    // Transformieren
    glTranslatef(static_cast<float>(x),static_cast<float>(y),0.0f);

        // Paralelogram Zeichnen mit Alpha 50% oder 25%
        glColor4f (GUI_COLOR_SOLID, hover ? 0.75f : 0.5f);
        glBegin(GL_QUADS);
            glVertex2i(32,0);
            glVertex2i(190,0);
            glVertex2f(158,32);
            glVertex2f(0,32);
        glEnd();

    // Alphablending dekativieren
    glDisable(GL_BLEND);

        // Rahmen rendern
        glColor3f (GUI_COLOR_BORDER);
        glBegin(GL_LINES);
            glVertex2i(32,0);
            glVertex2i(190,0);

            glVertex2i(190,0);
            glVertex2i(158,32);

            glVertex2i(0,32);
            glVertex2f(158,32);

            glVertex2i(32,0);
            glVertex2f(0,32);
        glEnd();

    // Normalfarbe wiederherstellen
    glColor3f (1, 1,1);

    // Matrix Popen
    glPopMatrix(); 
}


der code müsste eigentlich selbsterklärend sein, aber nun zum eigendlichen:

du fragst erstmal ab wo die maus ist, dann renderst du dort einen in der nähergelegenden Position ein Para mit dem Parameter bool = true, also einen Hover, der rest wird normal gerendert, wird die maus gedrückt gehst du in ein anderes menü usw... Also relativ easy:)

3

03.11.2003, 14:58

nicht alle nutzen ogl du ogl egoist :D

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

4

03.11.2003, 20:10

nein, aber da OpenGL sogesehen wie ANSI C aufgebaut ist, ist es herforragend für Beispiele :) Und ein Paralelogram in D3D anzuzeigen ist auch keine Kunst :) Es ging ja nur um ein Beispiel wie man einen Button Rendern kann :)

5

04.11.2003, 01:56

Genau.. es ist eigentlich egal mit welcher API man das ganze darstellt. Wichtig ist halt das man die Mouse Abfragt oder die Tastatur oder auch beides.

Die Mouse ist halt immer etwas einfacher zu handhaben als die Tastatur. Finde ich zu mindest ;D
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige