![]() |
OGL - Menu HI Da es sicher Leute unter uns gibt die nicht wissen wie man ein OGL Menu baut es aber gerne wüssten hab ich mir gedacht schreib ich ein Tutorial für ein recht komfortables Menu. Als erstes überlegen wir uns was wir brauchen und wie wir es umsetzten wollen. An sich gibt es zwei Methoden ein Menu umzusetzen einmal ein reines Textmenu oder ein Menu mit Zellen (also gemalten Boxen). Ich habe mich für das reine Textmenu entschieden weil es einfach besser rüber kommt. Bevor wir mit einer Funktion Anfangen brauchen wir globale Variablen und zwar: Code: //Für die Das erstellen und ausgeben der Schrift Code: void glPrint(float x, float y, float z, float r, float g, float b, const char *fmt, ...) Doch bevor wir die Funktion glPrint benutzten können müssen wir erst eine Schrift in den Speicher laden. Das geschieht mit der Funktion BuildFont: Code: GLvoid BuildFont(GLvoid) Dazu hier und hier mehr. Nun kommen wir zu unserem eigentlich Menu und zwar mit der Funktion DrawMenu: Code: void DrawMenu(int x, int y) Und denkt daran das wenn ich z.b. 12 Elemente benötigt ihr das Array auf dem entsprechen erweitert. Nun kommen wir auch schon zum Steuern durch das Menu mit den Pfeiltasten und aufgerufen wird das Menu mit „Del“ oder auch „Entf“. Der Teil kommt in die Funktion glViewport Code: Nun aber ist uns aufgefallen das wir mit Funktionen Arbeiten die wir noch gar nicht kennen und zwar „MenuSelect()“, „MenuUp()“ und „MenuDown()“. Damit wir auch diese Funktionen haben kommen sie nun auch gleich Code: void MenuUp() Nun noch ein kleiner Teil in glEnable und dann haben wir es auch schon fast geschafft. Code: if(!FirstInit) Code: void InitHack() { Nun noch die Strukturen und es ist geschafft. Code: typedef struct { Ich hoffe dieses Tutorial hat hat euch geholfen. Msg Suxx |
thx... jetzt mach ich mir auchmaln menü :) |
ps copy&past wird nich zwingend funktionieren :) |
ok dann nehm ich das mit dem panzerGL zurück :rolleyes: Zitat:
|
thx :) werd ich gleichmal einbauen // Edit so gemacht :) |
Hmmm... sry aber klappt bei mir net :-/ muss aber net an dem tut liegen, vl stell ich mich auch einfach dumm an. Code: Kompilierung läuft... Code: // Für die Keyverwaltung |
liegt sicher daran das du die strukturen nicht definiert hast das muss davor geschehen am besten in einem header file Zitat:
Zitat:
|
is im m3nu.h. Hab ich dass denn am anfang richtig gemacht mit glPrint und GLvoid BuildFont(GLvoid) ? Thx, dass du mal nachguckst :D |
jojo ich glaube hab was vergessen ^^ #include <gl/gl.h> #include <gl/glu.h> #include <gl/glaux.h> #include <windows.h> #include <stdio.h> #include <stdarg.h> #include <math.h> #include <Winbase.h> #include <Stdlib.h> und die errors C:\lambert+wh+white walls\var.h(20) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'menu' C:\lambert+wh+white walls\var.h(20) : error C2501: 'menu_s' : Fehlende Speicherklasse oder Typbezeichner liegen daran das du menu_s menu und draw_s draw in der opengl32.cpp haben musst |
die sind doch standartmässig im opengl32.h ... ich glaub ich hab in meinen funktioenen, die dauf menu zugreifen was falsch gemacht :-/ Edit: Ich sollte mal schneller abschicken ;) thx |
jo thx :) Aber ich hab da wohl zu viel fehler reingemacht :-/ ich dachte, dass ist egal, wo ich das reinmach. nu bekomm ich nochmehr fehler :D Code: C:\lambert+wh+white walls\m3nu.h(21) : error C2065: 'base' : nichtdeklarierter Bezeichner |
dizzy weisste wa sich up einfach kurz mein source dann kannste es dir nochmal in ruhe angucken :) |
das is lieb :) Edit: hängs doch einfach an :D |
nice tut ....aber verstehn tu ich da leider net viel....werd mich auch ma bissl mit c++ beschäftigen! |
deine cvars müssen auch mit denen aus dem hack übereinstimmen. sonst klappt es natürlich nicht. |
so nun geht auch dieses Tutorial aus dem Vip-Bereich an die Öffentlichkeit ich wünsch euch viel Spaß damit :) |
hehe nu können sich manche nen menü machen, aber keinen hack dazu :P ich behaupte mal nu kommen 40-50 fragen was damit machen und was es überhaupt ist (und mal ne frage die kommen wird) Nein, dass kann man nicht inne cfg schreiben. |
kann man in so ein menü auch so sachen wie namen, nextmap, adminsachen, oder so says machen ?? |
Zitat:
|
Ich danke dir erstmal für dieses Tutorial. Nur ich habe ein Problem. Und zwar habe ich Zitat:
Code: --------------------Konfiguration: opengl32 - Win32 Release-------------------- |
THX sUxx ! Bei mir hat´s funktioniert ! :) |
Zitat:
Code: typedef struct { |
bei mir funzt dieses menü, aber ich hab ein paar zeilen unter dem menu noch so text der einfach ändert..deswegen kann ich auch keine 10te zeile einfügen und so.. |
das liegt daran das ich es in dem Tutorial mit sizeof() mache Code: menu.maxcount = sizeof(Entry); Code: menu.maxcount = 9; // Bei 9 Einträgen |
dank dir..:D jetzt hab ich auch wieder anständige fps ;) eure copy paste tuts erschaffen wohl viele private-hooks..;), wenn sogar ein nap wie ich so etwas zusammenbasteln kann..:D. |
Ich würde meinem hack auch gerane ein menü geben. Leider bekomme ich beim compilieren noch einige fehler: Code: Compiling... Code: bool lamberttoggle=false; |
Doppelt Dekliniert ... static GLint vp[4]; int vp[4]; Geht nicht im Header ... musst du in der Opengl32.cpp machen // Init Der Strukturen menu_s menu; draw_s draw; |
Ich bekomme wieder Fehler beim compilieren, die ich nicht verstehe. Also ich hab bisher die einzelnen hack´s mit key bindigs (GetAsyncKeyState) gemacht. nun möchte ich das in meinem menü machen. Da ich mehrere hacks habe es aber zu umständlich wäre alles zu posten, mache ich es an einem beispiel. Bisher: Code: bool lamberttoggle=false;// in der vars.h Code: // bei ---> void MenuUp() opengl32.cpp(288) : error C2228: left of '.lamberttoggle' must have class/struct/union type und opengl32.cpp(406) error C2228: left of '.lamberttoggle' must have class/struct/union type opengl32.cpp(406) error C2228: left of '.lamberttoggle' must have class/struct/union type Wei mache ich ein class/struct/union type?? Bitte bitte nochmal helfen ;-) |
sorry dies ist aber nicht als Anfänger Tutorial gedacht also kann ich nur sagen Lern C++ ps: du musst die Variable cvar definieren |
JUHUI ich hab die cvar definiert JUHUI ich hab die cvar definiert in einer cvar.h header datei Code: #ifndef HEADER_CVAR_H opengl32.cpp(299) : error C2065: 'glPrint' : undeclared identifier Code: glPrint(x,y-28,1.0f,0.5f,0.5f,1.0f,"------------------------"); Code: void sys_glPrint(float x, float y, float z, float r, float g, float b, const char *fmt, ...) |
aehm ja schon mal dran gedacht das daß keine richtige Print funktion ist? |
Warum ? und wie sieht eine richtige Printfunktion aus? |
Code: GLvoid glPrint(const char *fmt, ...) // Custom GL "Print" Routine Das ist die Print funktion von Neon Helium Opengl Tutorial |
Hmm ich werd einfach nicht schlau draus. Ich verwende den wrapper den es zum download gibt.. und ich bekomme immer nen fehler.. egal wie ich es anstelle. Mit deinem code sagt der compilor das da: Code: opengl32.cpp(320) : error C2664: 'glPrint' : cannot convert parameter 1 from 'int' to 'const char *' |
Kannst mal weiter lesen die Print musst du noch umschreiben. das der code aber GLvoid glPrint(...) bei ... musst dus noch anpassen |
Zitat:
|
Sry dass ich es nicht gleich erkannt habe, dass ich es so schreiben muss: Code: void glPrint(float x, float y, float r, float g, float b, const char *fmt) Wenn ich mir aber so die ersten public posts ansehe hier im treat Zitat:
Deshalb nehme ich mir das recht weiter zu fragen und gehe in keinen Sandkasten. Könnte mir bitte jemand bei diesem fehler helfen?: Code: 1. opengl32.cpp(23) : error C2065: 'fmt' : undeclared identifier |
Hi, erstmal super Forum Ich hab ein Provlem, wenn ich das compile kommen sehr viele Errors, was mach ich falsch? Code: --------------------Configuration: opengl32 - Win32 Release-------------------- Code: #ifndef HEADER_CVAR_H |
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:25 Uhr. |
Powered by vBulletin