Announcement

Collapse
No announcement yet.

Grafische Anwendungen mit .NET - Einstieg?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Grafische Anwendungen mit .NET - Einstieg?

    Hallo!

    Bisher habe ich mich ausschließlich mit Datenbankanwendungen beschäftigt (Vereinsverwaltung für unseren Verein). Was mir als Hobbyprogrammierer noch völlig unbekannt ist, ist das Thema von grafischen Anwendungen.

    Was ich damit meine, wird vielleicht an einem Beispiel deutlich: es gibt das Spiel „Risiko“ auch als PC-Spiel. Da ist eine grafische Landkarte mit einzelnen Ländern, die einzeln angeklickt werden können, wo sich die Hintergrundfarbe in Abhängigkeit von gewissen Merkmalen ändern kann und wo die Länder zusätzlich beschriftet sind.

    Wäre so etwas auch mit .NET möglich? Wie müsste man da vorgehen? Wie „zeichnet“ man so eine Landkarte? Im Prinzip bräuchte ich Steueremelente, die eine beliebige Form haben können. Ginge das Winforms? Wäre es evtl. mit WPF einfacher/eleganter? Zeichnet man so eine Landkarte mit anderen Werkzeugen und setzt diese als Hintergrundbild und setzt Steuerelemente darüber?

    Es wäre nett, wenn Ihr mir ein paar Stichpunkte zum Vorgehen nennen könntet, mit denen ich dann weiter suchen kann. Mir fehlt irgendwie der erste Ansatz. Vielleicht gibt es auch ein Beispielprojekt.

    Oder ist .NET gar die falsche Basis dafür und man müsste sich dafür mit ganz anderen Sprachen beschäftigen?

    Danke für Infos.

    Marco


    P.S, ein ergänzender Hinweis: Ich will nicht das Spiel Risiko nachprogrammieren, das ist nur ein Beispiel, dass meiner Anforderung von der Systematik aber sehr nahe kommt.
    Zuletzt editiert von SQL-Rookie; 09.09.2014, 09:57.

  • #2
    Hi!

    Mit welcher konkreten Sprache du es realisierst, bleibt dir überlassen. Generell ein paar Ansätze: Beim Spiel Risiko hast du sicher irgendeine Grafikengine (in nativster Form direkt DirectX oder OpenGL) im Hintergrund. Dort kannst du im Prinzip deine "Primitiven" zeichnen wie du willst.

    Ich gehe aber jetzt mal nicht davon aus, dass du mit solchen Spielereien arbeiten willst. Deshalb mal das ganze aus Sicht einer "normalen" Anwendung aus betrachtet. Dort wäre es wohl am einfachsten, dass du irgendwelche vorhandenen GUI Elemente als Basis hernimmst und das Verhalten von denen übernimmst. Im objektorientierten Sinn erbst du einfach das Verhalten von passenden GUI Elementen. Bei Java wäre das z.B. in der einfachsten Form ein JPanel. In C# könntest du z.B. die Panel Klasse verwenden. Innerhalb deiner Subklasse kannst du dir natürlich auch den aktuellen Status deiner Komponente speichern.

    Der Vorteil davon ist, dass du diese Elemente einfach in die bestehende GUI integrieren kannst. Außerdem bietet dir sowohl Java, als auch C# die Möglichkeit an Listener an diesen Komponenten zu registrieren (das wären die Steuerelemente - wie du sie nennst). Diese Listener warten dann im Hintergrund auf irgendwelche Aktionen und werden z.B. durch einen Mausklick (Java: MouseListener) ausgelöst. Wenn der Listener ausgelöst wird, kannst du entsprechend reagieren. Der Vorteil davon: Jede Komponente hat ihren eigenen Listener und du brauchst nicht einen globalen "Aufpasser" der bei jeden Klick erst feststellen muss, auf welche Komponente überhaupt geklickt wurde.

    So nun zur Form: Die Darstellung auf der Oberfläche hängst meistens im Hintergrund von einer Methode ab (unter Java z.B. paintComponent). Wenn du in deiner Subklasse diese Methode überschreibst, kannst du deine Komponenten frei gestalten. Wenn du (wie schon oben angesprochen) den Status innerhalb deiner Komponente verwaltest, dann kannst du die Darstellung deiner Komponente direkt davon abhängig machen.

    Im Allgemeinen wären das wohl die typische Vorgehensweise.

    Lg

    Comment


    • #3
      Ich würde Dir eigentlich eher zum Gegenteil raten. Schau Dir lieber Spieleframeworks oder eher generell Spieleentwicklung an. Jedes halbwegs aufwändige Spiel wird in der Regel komplett manuell, also ohne Steuerelemente, gezeichnet. Falls Du wirklich tiefer in die Spieleentwicklung eintauchen möchtest, würde ich Dir empfehlen Dir ein Buch in der Sprache Deiner Wahl zu besorgen und dann einfach loszulegen. Allerdings wirst Du dann um etwas Mathematik und Theorie nicht herum kommen. Aber man lernt eine Menge dabei

      Comment


      • #4
        Originally posted by fanderlf View Post
        Ich würde Dir eigentlich eher zum Gegenteil raten. Schau Dir lieber Spieleframeworks oder eher generell Spieleentwicklung an. Jedes halbwegs aufwändige Spiel wird in der Regel komplett manuell, also ohne Steuerelemente, gezeichnet. Falls Du wirklich tiefer in die Spieleentwicklung eintauchen möchtest, würde ich Dir empfehlen Dir ein Buch in der Sprache Deiner Wahl zu besorgen und dann einfach loszulegen. Allerdings wirst Du dann um etwas Mathematik und Theorie nicht herum kommen. Aber man lernt eine Menge dabei

        Also, ich will kein Spiel entwickeln. Das Risikospiel war nur ein Bespiel, was die meisten kennen und meiner Anforderung sehr nahe kommt.
        Um da konkreter zu werden: ich hätte gerne eine Art Landkarte bzw. Grundriss, die mir den Belegungs-/Buchungsstatus von Räumen und Plätzen anzeigt. Das ist das Ziel

        Aber vielleicht ist der Ansatz, dass ich mich mal bei den Spieleentwicklern umsehe, gar nicht so schlecht ...

        Comment


        • #5
          Hallo,

          fürs Zeichnen siehe z.B. auch [Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox).

          mfG Gü
          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

          Comment


          • #6
            Der Vorschlag von Günther wäre dafür mit Sicherheit ein guter Kompromiss Generell schadet das aber nicht mal zu sehen wie graphisch komplexere Anwendungen funktionieren. Kommt halt drauf an ob Du jetzt die schnellstmögliche Lösung brauchst oder ob es nur um Spaß und Lernen geht.

            Comment

            Working...
            X