Location vergleichen -> anpassen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Location vergleichen -> anpassen

    Hey Community.

    Vor geraumer Zeit hatte ich einen ähnlichen Thread: Farbe annehmen

    Diesmal geht es jedoch um die Location von mehreren Controls mit dem gleichen Namen. Und zwar programmiere ich gerade so ein paar Grundlagen eines Spieles um diese später in einem 2D spiel zusammen zu tun.

    Es geht diesmal um "Erfahrungspunkte" die beim Erlegen von Gegner freikommen, pro gegner kommen circa 2-5 Erfahrungskugeln zusammen. Ich möchte es so machen das jeder Erfahrungspunkt sich auf den Spieler zu bewegt (Controlname = Spieler1). Das ist ja nicht das schwierigste da ich Spieler1.location.X mit Erfahrungpunkt.Location.X vergleiche und dann +1 addiere oder subtrahiere. Jedoch muss ich das ja für jeden Erfahrungspunkt machen wie soll ich das machen. Da ich ja das Control erst zur laufzeit hinzufüge.

    VB.NET-Quellcode

    1. Dim ep as new picturebox 'Ep = ErfahrungsPunkt
    2. ep.backgroundimage = my.ressources.Ep
    3. ep.size = new size (15,15)
    4. me.controls.add(ep)
    Auch wenns dich vlt. ärgert - ich postes dann halt für die anneren, die mit sonem Ansatz anfangen: Vergisses.

    Ein Spiel programmiert man vor allem in einem Datenmodell. Wie die DatenObjekte anzuzeigen sind, ist eine ganz annere Programmier-Ebene.
    auf keinen Fall - jedenfalls nicht in WinForms - nimmt man Controls als SpielFiguren her.
    Sondern die Spielfiguren bleiben Datenobjekte, und zwar solche, die selber wissen, wie sie sich zu zeichnen haben - Stichwort OwnerDrawing.

    Konzeptionell gibts also ein ownerdrawn ZeichenControl (quasi der Bildschirm), welches im _Paint-Event alle Spielfiguren aufruft, sich zu zeichnen.

    Und die Logik spielt sich innerhalb der Daten-Seite der Spielfiguren ab.

    guggemol Gezieltes OwnerDrawing. Ist zwar c# - ist ja auch nur zum angugge der Sample-Solution.

    Und die dortigen "Spielfiguren" haben keine weitere Logik, als dass sie draggable sind, und sich nach der Maus ausrichten.
    Aber das wäre eine Grundlage, denn diesen Spielfiguren könnteman jetzt noch beliebige Logik angedeihen lassen.
    jetz binnich angenehm überrascht :) - normalerweise lehnen die Leuts es ab, wenn ich ihr komplettes Anwendungskonzept - nett gesagt - in Frage stelle.
    Also wenns dich interessiert, kannichdir auchn paar VB-Beispiele ungefähr in die Richtung geben:
    Control mit beweglicher Figur - das ist halt nur ein einzelnes DrawObject
    Outlined und ziehbare Schrift das sind zwar mehrere, aber man braucht schon Phantasie, um zu erkennen, dass man aus dem Ansatz auch Spielfiguren stricken könnte.
    Aber die Daten-Seite ist sehr leistungsfähig und erweiterbar, da es auffm typisierten Dataset aufbaut.