Laden...

Einfache Objekte am Biildschirm bewegen: WinForms vs. XNA?

Erstellt von bloody_fighter vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.734 Views
B
bloody_fighter Themenstarter:in
54 Beiträge seit 2008
vor 15 Jahren
Einfache Objekte am Biildschirm bewegen: WinForms vs. XNA?

Also folgendes: Ich möchte für ein Schulprojekt eine Physikalische Simulation für die Grundformeln wie s = v * t usw. programmieren. Das ganze soll dann später so aussehn, dass man ein Objekt hat welches sich dann auch auf dem Bildschirm entsprechend den Einstellungen bewegt, wozu dann auch noch weitere Diagramme angezeigt werden können. Es muss einen Pausebutton geben und einen "Abspiel"-Button, d.h. die Grafik muss sich immer selbst aktuallisieren ABER dennoch muss man das Programm mit Buttons steuern können.
Für die Realisierung ergeben sich für mich 3 möglichkeiten:

  1. Alles mit XNA. Das Problem hierbei ist aber, dass ich alle Buttons und das komplette Menü etc. selber programmieren müsste. Und das wäre wohl viel zu viel Arbeit.

  2. Alles mit Winforms und die Grafiken in einer PictureBox anzeigen lassen.
    Erstes Problem hierbei: Wenn die Grafiken komplexer werden wird es wohl komplex die ganzen Objekte passend anzuzeigen, und ist eine Picturebox die 60 mal / sekunde aktuallisiert wird nicht vieeel ressourcenaufwändiger ,wie wenn man das ganze mit XNA programmieren würde? Das zweite Problem ist, dass das Bild immer aktuallisiert werden müsste , das Programm aber trotzdem weiterhin auf Buttons etc. reagiert.

  3. Möglichkeit: XNA in Winforms einbinden. Problem hierbei: relativ komplex mit dem einbinden, eventuell viel höherer Aufwand wie alles in XNA / Winforms. Außerdem wüsste ich auch hier nicht wie ich das Problem mit der aktuallisierung lösen könnte. Vorteil: ich hätte die Buttons und das Menü schon zur verfügung aber für die Grafik dennoch die Möglichkeit, XNA zu verwenden.

Also: was ist eurer Meinung nach die beste lösung für mein Problem? Für Tipps und Anregungen bin ich immer offen 😃
MFG

N
335 Beiträge seit 2006
vor 15 Jahren

Hallo bloody_fighter,

es gibt sehr wohl GUI Frameworks für XNA:
http://forums.xna.com/forums/t/15274.aspx

Alternativ kann man leicht Direct3D in WinForms einbetten.
Unter Umständen könnte auch schon die GDI für deine Vorstellungen genügen.

Mfg NeuroCoder

J
66 Beiträge seit 2008
vor 15 Jahren

XNA und Winforms ist weder viel Aufwand noch komplex und würde ich auch empfehlen. Auch WPF ist möglich.

Am besten mal 3 Links:

Sehr gut und umfassend
XNa und Winforms
XNA und WPF

mfg

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo bloody_fighter,

naja, 60 mal pro Sekunde muss ja nun wohl auch nicht sein. Für deine Anforderungen reicht WinForms m.E. völlig aus. Verwende aber kleine PictureBox, sondern zeige direkt auf das Form. Siehe [Artikel] Zeichnen in Windows-Programmen.

herbivore

871 Beiträge seit 2005
vor 15 Jahren

Außerdem wüsste ich auch hier nicht wie ich das Problem mit der aktuallisierung lösen könnte.

Hallo,

wenn Du XNA in ein Windows Forms Projekt einbindest läuft das mit der aktualisierung ziemlich simpel:

  1. Der Bereich in den XNA rendert, dann aktualisieren wenn er überdeckt wurde.
  2. Wenn sich etwas in deiner Szenerie ändert.

Alles in allem eigentlich genau so wie bei regulärem WinForms 😃

Grüße,
Egon

B
bloody_fighter Themenstarter:in
54 Beiträge seit 2008
vor 15 Jahren

Naja, es ist ja eine Bewegung die kontinuirlich ist. Es ändert sich also immer was in meiner Szenerie. Ich müsste die aktuallisierung also in eine Dauerschleife packen, während diese "Schleife" dann durchläuft , MUSS das Programm aber weiterhin auf Buttons etc. reagieren, z.B. wenn das ganze angehalten wird etc. . Und ich weiß nicht wie ich das in Winforms realisieren könnte, in XNA wird das ganze ja "automatisch" gemacht.
Zu den anderen: vielen dank schonmal, werde mir eure sachen bald anschauen wenn ich dazu komme 😉
Gruß

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo bloody_fighter,

siehe Animationsbeispiel in [Artikel] Zeichnen in Windows-Programmen

herbivore