Editor abspeichern

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Editor abspeichern

    Hi,

    ich habe einen Map Editor (einfach gemacht)und möchte nun wenn ich im menüstrip save auswähle das er die map speichert hier ist der code für den Map Editor


    Public Class Form1
    Private rect As Rectangle
    Private rect2 As Rectangle
    Private graph As Graphics
    Private bitmap As Bitmap = New Bitmap(1000, 1000)
    Private Sub GenerateToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GenerateToolStripMenuItem.Click
    Me.WindowState = FormWindowState.Maximized
    For tilex = 1 To 10
    For tiley = 1 To 10
    rect = New Rectangle(tilex * 70, tiley * 70, 70, 70)
    graph = Graphics.FromHwnd(Me.Handle)
    graph.DrawRectangle(Pens.Black, rect)
    Next
    Next
    End Sub

    Private Sub Form1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Click
    Me.WindowState = FormWindowState.Maximized
    For tilex = 1 To 10
    For tiley = 1 To 10
    rect = New Rectangle(tilex * 70, tiley * 70, 70, 70)
    graph = Graphics.FromHwnd(Me.Handle)
    graph.DrawRectangle(Pens.Black, rect)
    If Form1.MousePosition.X < rect.Location.X + rect.Width And Form1.MousePosition.X > rect.Location.X And Form1.MousePosition.Y < rect.Location.Y + rect.Height And Form1.MousePosition.Y > rect.Location.Y Then
    rect = New Rectangle(rect.Location.X, rect.Location.Y, rect.Width, rect.Height)
    graph = Graphics.FromHwnd(Me.Handle)
    graph.FillRectangle(Brushes.BlueViolet, rect)
    End If
    Next
    Next
    End Sub
    End Class


    gruß vber :) :)
    Bitte benutze VB-Tag, damit man den Code ohne die Gefahr von Augenkrebs lesen kann ;)

    Deine Variante zum Zeichnen ist (sorry) Mist. Bitte nutze das extra dafür gemachte Paint-Event. Speichere also bei jedem Rechteck die relevanten Werte in einer globalen Rect-Variable und rufe invalidate() zum aktualisieren der Form auf.
    Bessere Möchlichkeit: Rectangleobjecte in einem GraphicsPath ablegen und diesen in einem Rutsch mit Invalidate im Paint-Event zeichnen. Gleichzeitig auf die Bitmap zeichnen

    VB.NET-Quellcode

    1. using g as graphics = graphics.fromimage(deineBitmap)
    2. 'hier zeichnen auf den Bild
    3. End Using

    Das Bitmap verfügt schließlich über eine Save-Methode, mit der du deine Map speichern kannst (kommt jetze drauf an, was du beim Verwenden der Map haben willst)

    Ich favorisiere für sowas ne Klasse, die lediglich ein 2-dimensionales Array enthalten muß. In diesem Array wird eine Zahl (Enumeration) abgelegt, die sagt 1=Steinwand, 2=Holzwand usw.
    Diese Klasse wird serialisiert und damit mit deinem eigenen Format gespeichert. Im Programm hast du durch die Arrayindex x und y die Position und an Hand des Inhaltes eine beliebige Textur aus den Resourcen.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Dann lass mal sehen, was Du aschon hast.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!