TrommlBomml hat geschrieben:ich habe eine Lösung mit MFC implementiert bekommen wie bereits besprochen. Um vielleicht den Code noch etwas einfacher zu gestalten, bevor ich ihn in das BotE-Projekt integrieren möchte hab ich noch ein paar Fragen:
1) Gibt es mehrere MFC-Dialoge oder nur einen, in dem der Inhalt immer ausgetauscht wird?
2) Sind die Animationsfenster konstant, d. h. kein Objet verändert seine Position?
Ansonsten ist es auch erstmal so gestrickt, dass man problemlos auch 3D-Modelle darstellen kann. Sind bisher nur 4 Klassen für das Framework + SFML 2.1. Denke also überschaubar.
Wenn ansonsten dann alles geklärt ist, wäre es hilfreich einen einfachen Beispielzustand zu haben, wo ich mal etwas implementieren soll, damit ihr es gleich sehen und eure Meinung über die Handhabung des Frameworks mitteilen könnt.
MFC-Dialoge
- Malle
- Großadmiral
- Beiträge: 6948
- phpbb forum styles
- Registriert: Montag 13. November 2006, 15:16
MFC-Dialoge
Hier 2 Fragen von TrommlBomml, auf die vll. Anonymissimus eine Antwort kennt (hoffe ich ):
Re: MFC-Dialoge
falls Ano keine Antwort weiß, müßte man wohl SirP kontaktieren, wobei eine PM evtl. nicht ausreicht, oder jemanden, der sich mit MFC auskennt
-
- Flottenkapitän
- Beiträge: 990
- Registriert: Freitag 14. Mai 2010, 14:39
Re: MFC-Dialoge
Bin mir nicht sicher, ob ich die Frage verstehe.Malle hat geschrieben:1) Gibt es mehrere MFC-Dialoge oder nur einen, in dem der Inhalt immer ausgetauscht wird?
Tendenziell existiert für jeden UI-Bereich, wie zb die galaxy map, oder die Schiffsansicht unten, oder den Settings Dialog, eine eigene Klasse. Also vermutlich "mehrere".
Die Frage versteh ich nicht. Animationsfenster ?Malle hat geschrieben:2) Sind die Animationsfenster konstant, d. h. kein Objet verändert seine Position?
TrommiBommi sollte am besten mal selber hier nen Account machen damit er diskutieren kann (oder wie auch immer).
Re: MFC-Dialoge
am Account von Trommlbomel mangelt s nicht http://forum.birth-of-the-empires.de/me ... ile&u=2594
Frage 2 (ich rate mal): Wenn ein Planet angezeigt wird in der Bottomview, dann bleibt er in seinem (Fenster-)Bereich und wandert nicht hin und her...er dreht sich um seine eigene Achse
Frage 2 (ich rate mal): Wenn ein Planet angezeigt wird in der Bottomview, dann bleibt er in seinem (Fenster-)Bereich und wandert nicht hin und her...er dreht sich um seine eigene Achse
-
- Flottenkapitän
- Beiträge: 990
- Registriert: Freitag 14. Mai 2010, 14:39
Re: MFC-Dialoge
In der Planetbottomview sind de Positionen der Planeten allerdings konstant, ja. Sobald das System einmal generiert wurde, was nur am Spielbeginn passiert.rainer hat geschrieben:Frage 2 (ich rate mal): Wenn ein Planet angezeigt wird in der Bottomview, dann bleibt er in seinem (Fenster-)Bereich und wandert nicht hin und her...er dreht sich um seine eigene Achse
(Sollte jemals jemand sowas wie nen Todesstern haben wollen entsteht da bestimmt ein Problem. xD)
Bei freeorion gibt es übrigens ziemlich geile Planetenanimationen, die drehen sich sehr langsam um ihre Achsen, und zwar die genaue Höhenachse.
Re: MFC-Dialoge
ich spiel mal noch ne Weile den Mittler:
TrommlBomml hat geschrieben:Gut, anscheinend habe ich mich falsch ausgedrückt. Ich versuche es etwas deutlicher:
1) Gibt es mehrere MFC-Fenster (also richtige Win32 Fenster), zwischen denen im Spielverlauf hin- und her gewechselt wird, z.B. wenn ich von der Weltkarte zur Forschungsseite navigere oder so (wahlloses Beispiel)?
2) Mit Animationsfenster meine ich einen rechteckigen Bereich in irgend einem aktuellen UI-Bereich, in dem die Animationen für Planeten ablaufen sollen, statisch (feste Position innerhalb des rechteckigen Bereiches)?
Mir geht es eigentlich nur darum, dass meine aktuelle Lösung erfordert, für jeden Teil auf einem UI-Bereich, den man mit irgendwas animierten Darstellen möchte, dass man dafür von einer Basisklasse erbt. Wenn 95% dieser Bereiche aber statisch ist, also so lange es angezeigt wird, sich kein Objekt bewegt, kann ich eine vereinfachte Klasse erzeugen.
-
- Kadett
- Beiträge: 13
- Registriert: Montag 31. März 2014, 06:32
Re: MFC-Dialoge
Ich habe einen neuen Account erzeugt weil ich an den alten nicht mehr heran kam.
Die Fragen stellen sich für mich im Wesentlichen aus Architekturgründen. Ich habe eine Lösung für die "animierten Bereiche" implementiert. Um das ganze sauber und gut in BotE integrieren zu können, sind für mich die oben genannten Fragen ziemlich wichtig. Ich möchte euch ja eine einfache, gut Wartbare und möglichst gut erweiterbare Lösung bieten!
Die Fragen stellen sich für mich im Wesentlichen aus Architekturgründen. Ich habe eine Lösung für die "animierten Bereiche" implementiert. Um das ganze sauber und gut in BotE integrieren zu können, sind für mich die oben genannten Fragen ziemlich wichtig. Ich möchte euch ja eine einfache, gut Wartbare und möglichst gut erweiterbare Lösung bieten!
-
- Flottenkapitän
- Beiträge: 990
- Registriert: Freitag 14. Mai 2010, 14:39
Re: MFC-Dialoge
zu 1) Jetzt weiß ich noch weniger was ich da sagen soll zu sry. Vllt solltest du das selbst anhand des codes erschließen. "Richtiges Fenster" heißt CWnd oder so ? Ich glaube schon, dass wir da von erben (über Zwischenschritte). Aber das muss man nachschauen.
zu 2) Ich nehm an, das müsste dann gehen ja. Unsere Planetenpositionen bleiben innerhalb vom PlanetBottomView immer fix.
EDIT
Planeten können auch im SmallInfoView angezeigt werden. Da gilt allerdings das gleiche. Die Animation könnte auch nur dort sein.
zu 2) Ich nehm an, das müsste dann gehen ja. Unsere Planetenpositionen bleiben innerhalb vom PlanetBottomView immer fix.
EDIT
Planeten können auch im SmallInfoView angezeigt werden. Da gilt allerdings das gleiche. Die Animation könnte auch nur dort sein.
Re: MFC-Dialoge
kurzes off-topic: rainer, hast du noch die private mailadresse von puste? Wohin geht eigentlich die admin@birth-of-the-empires Adresse, die bei heise.de verlinkt ist? Evtl. könnte man ihm bei facebook schreiben.
Re: MFC-Dialoge
admin@birth-of-the-empires geht direkt in Puste's Mailprogramm zuhause (war zumindest so)...@Malle: Rest per PM
Re: MFC-Dialoge
hab mal gemailt, danke Rainer.
-
- Kadett
- Beiträge: 13
- Registriert: Montag 31. März 2014, 06:32
Re: MFC-Dialoge
Ich habe mir heute den SourceCode angeschaut und konnte meine Frage selber beantworten: Es gibt mehrere Dialoge, aber nur einer ist interessant, nämlich MainDlg. Es werden dann innerhalb des Dialogs Views ausgetauscht. Ist soweit ich das sehe sehr sinvoll. Das gute ist, dass jedes CView auch ein CHwnd ist und somit sich direkt jeder View durch eine Hardwarebeschleunigte View mit SFML ersetzen kann. Leider hat das auch den Nachteil, dass der komplette View mit SFML gerendert werden muss. Das liegt einfach daran, dass SFML (auch jede andere Implementierung) nur rechteckige Bereiche rendern kann. Die Transparenz ist nicht einfach möglich, da muss man dann mit WINAPI rumfummeln, um transparente Windows-Bereiche zu bekommen. Zusätzlich ist auch die Zeichenreihenfolge gemixt GDI+ CView::OnDraw() Retained und SFML's Immediate-Drawing nicht wirklich beeinflussbar. Das macht das ganze etwas umfangreicher als gedacht.
Meiner Meinung nach wäre der richtige Weg, komplette Views mit SFML an statt GDI zu zeichnen. Das hat den Vorteil, dass man auch problemlos 3D-Grafiken rendern kann. Idealerweise würde ich in der Vererbungshierarchie direkt eine eigene Ableitung zwischenhängen, wodurch man mit SFML einfach in dem View loszeichnen kann, in dem man OnImmediateDraw() überschreiben kann. Ich denke damit ist das dann gut umsetzbar.
Die Videos hätten übrigens dasselbe Problem mit dem transparenten Rahmen, so dass das nur bei kleinen Views geht, die nur ein Video rendern.
Ich habe übrigens auch noch das Problem, dass ich nur VS2010 aufwärts habe, BotE aber VS2008 benutzt. Prinzipiell kein Problem, nur wenn ich dann etwas pushe, wirds mit der Projektdatei Problematisch. Muss ich mir 2008 noch installieren? oder ist ein Umsteig auf 2010 überlegenswert?
Meiner Meinung nach wäre der richtige Weg, komplette Views mit SFML an statt GDI zu zeichnen. Das hat den Vorteil, dass man auch problemlos 3D-Grafiken rendern kann. Idealerweise würde ich in der Vererbungshierarchie direkt eine eigene Ableitung zwischenhängen, wodurch man mit SFML einfach in dem View loszeichnen kann, in dem man OnImmediateDraw() überschreiben kann. Ich denke damit ist das dann gut umsetzbar.
Die Videos hätten übrigens dasselbe Problem mit dem transparenten Rahmen, so dass das nur bei kleinen Views geht, die nur ein Video rendern.
Ich habe übrigens auch noch das Problem, dass ich nur VS2010 aufwärts habe, BotE aber VS2008 benutzt. Prinzipiell kein Problem, nur wenn ich dann etwas pushe, wirds mit der Projektdatei Problematisch. Muss ich mir 2008 noch installieren? oder ist ein Umsteig auf 2010 überlegenswert?
-
- Flottenkapitän
- Beiträge: 990
- Registriert: Freitag 14. Mai 2010, 14:39
Re: MFC-Dialoge
BotE ist meines Wissens nicht mit 2010+ kompilierbar, da Linkerfehler mit der lzma lib auftreten. (Vermutlich - der Beweis, dass es daran liegt, dass die lzma die wir verwenden mit dem 2006er erstellt wurde, steht noch aus.)
-
- Kadett
- Beiträge: 13
- Registriert: Montag 31. März 2014, 06:32
Re: MFC-Dialoge
Ich musste es ja gezwungenermaßen mit 2010 übersetzen und hatte nur einen kleinen Fehler beim Zugriff auf einen Int-Pointer, was mit einem cast leicht zu beheben war. Ansonsten hat alles geklappt. Naja ich kann mir im Zweifel trotzdem, 2008 installieren, das gehtschon.
Re: MFC-Dialoge
BotE ist gezwungenermassen VS2008 (kostenlos, http://www.computerbase.de/downloads/sy ... udio-2008/), da wir nur dafür die MFC (kostenpflichtig) haben...also bitte kein Upgrade auf VS2010 !