|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 18.08.2002, 10:28 Titel: Win32-Spezifische Fragen |
|
|
Hallo, Leute!
Wie einige von Euch sicherlich schon wissen, programmiere ich seid ca. 2 Monaten an einem mehr oder weniger größerem Spiel. Ich komme sehr gut voran und bin jetzt auf das Problem gestoßen, wie ich einen Level aufbauen muß. Ich habe mir für die reine Level- (und auch Cutszenen-)definition eine HTML-ähnliche Scriptsprache ausgedacht. Damit lassen sich alle Details eines Level's genau beschreiben, sogar Trigger sind möglich, um z.B. einen NPC (NichtSpielerCharakter) eine bestimmte Aufgabe ausführen zu lassen, sobald der PC (Player Charakter) an einem bestimmten Punkt vorbeikommt.
Um trotsdem einen Level leichter erstellen zu können, habe ich erst mal angefangen, einen WYSIWYG (What you see ist what you get) Editor für meine Scriptsprache zu erstellen. Da ich MFC nicht sehr mag, bzw. nicht gerne programmiere habe ich alles als Win32-Projekt ausgelegt. Es handelt sich bei dem Leveleditor zwar um ein SDI-Programm (Single Document Interface) jedoch verwende ich mehrere Fenster, um z.B. die Toolbar, einen Ausgabebereich, den Arbeitsbereich, den Quellcode des Levels oder auch den Level selbst darzustellen. Für jedes dieser (Rahmenlosen) Fenster benötige ich natürlich auch ein Fensterhandle.
Nun meine Fragen:
Sind die verfügbaren Fensterhandles sehr beschränkt bzw. kann/darf ich ohne weiteres annehmen, daß ich genügend zur Verfügung gestellt bekomme? (Mit Genügend sind im gesamten Editor sicherlich 100 Handles gemeint, wenn nicht sogar noch mehr)
Wie stark darf ich Fenster verschachteln? Das Hauptfenster enthält z.B. das Abreitsplatzfenster, welches ein Tab-Fenster enthält mit mehreren Tabulatorflächen. Diese Tabulatorflächen enthalten wiederum Fenster mit Tree-View-Elementen, Buttons usw. Jedes dieser Objekte ist ja programmiertechnisch ein Fenster, also wie viele dieser Objekte darf ich ineinander Verschachteln?
Wie werden Windowmessages verteilt? Bekommt zu erst das Hauptfenster die Message (z.B. WM_MOUSEMOVE) und leitet sie die Meldung immer an das darunterliegende Fenster weiter, daß sie wiederum weiterleitet oder bekommt nur das oberste (zuletzt erstellte) Fenster die Message?
So, das dürfte erstmal reichen,
Bis Bald: AFE-GmdG
PS.: Fragen an mich in Bezug auf dieses Projekt, die nicht von algemeinen Interesse sind, sollten per Mail an mich gerichtet sein. Da ich einen Messagefilter verwende, sollte Die Betreffzeile der Mail lauten: "Projekt: Blablablupp" _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 22.08.2002, 22:20 Titel: |
|
|
Ergänzung:
Ich habe in der Zwischenzeit weiter programmiert. Bisher habe ich immer vorausgesetzt, das ich genügend Speicher und Handles zur verfügung gestellt bekomme, wie auch immer das von Windows geregelt wird. Natürlich sind entsprechende Sicherheitsabfragen eingebaut, die ein Fehler umgehen bzw. abfangen. Nur das mit der Messagebehandlung habe ich noch nicht wirklich herausbekommen. Bisher funktioniert alles, wenn ich in der jeweiligen Messagebehandlungsroutine die Abfragen reinprogrammiere. Mal sehen, ob ich auf Probleme stoße... Trotsdem würde mich die genaue Weiterleitung der Messages von Windows interessieren.
Bsp.: Ich bewege die Maus über mein Programmfenster. Die Message WM_MOUSEMOVE wird an die Routine von hWnd gesendet. Dieses Hauptfenster hat nun weitere Untergeordnete Fenster, z.B. eine Statusleisste. Wenn ich innerhalb der Statusleiste die Maus Bewege, wird die Message WM_MOUSEMOVE an hStatusWnd gesendet. Wird sie auch an hWnd gesendet, und wenn ja, an wen zuerst? Ist das definiert, oder dem "Zufall" überlassen, frei nach der Methode "Wer zuerst kommt, malt zuerst"?
Darüber würde ich gerne noch ein paar Infos einsammeln.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
DaN00b JLI'ler
Anmeldedatum: 10.08.2002 Beiträge: 159
Medaillen: Keine
|
Verfasst am: 23.08.2002, 08:25 Titel: |
|
|
ich glaub mir geht es wie vielen anderen hier im forum das das mir einfach noch zu hoch ist was du da fragst
würde ja gerne helfen :/ _________________ Carpe Diem - Seize the day - Nütze den Tag! |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 23.08.2002, 11:06 Titel: |
|
|
Hab ich leider auch schon festgestellt...
Nun ja, dann bin ich eben einer, der mehr antworten als Fragen kann...
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Sören JLI Master Trainee
Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 23.08.2002, 11:11 Titel: |
|
|
Nein, ich finde nicht dass die Frage ein zu hohen Level hat! Wer sich schon mal etwas tiefer greifender mit Win32 beschäftigt hat, sollte sowas wissen! Ich bin mir sicher, zumindest einer von den "Guten"(Jörg, Michael...) und natürlich Christian sowas weiss! Ich würde noch mal warten!
PS.:Manchmal schreckt man Leute mit langen Posts auch ab, aber bei dir ließe sich das wohl kaum kürzer formulieren!
MiracleBoy |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|