RectangleShapes mit einer Schleife verteilen

  • VB.NET

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

    RectangleShapes mit einer Schleife verteilen

    Hallo zusammen :)

    Ich arbeite seit ein paar Tagen an einem Pacman-Spiel(ich denke das Spielprinzip ist jedem bekannt).
    Nun bin ich gerade dabeizu testen wie ich das "Essen" auf dem Bildschirm verteilen kann. Es soll ein bestimmter Bereich mit je 5 auf 5 großen RectangleShapes und diese mit je 5 Pixeln Abstand in diesem Bereich beim Starten der Form verteilt werden.

    Quellcode

    1. Imports Microsoft.VisualBasic.powerpacks
    2. Public Class Form1
    3. Dim canvas As New ShapeContainer
    4. Dim essen(10000000) As RectangleShape
    5. Dim essenLocation(10000000) As Point
    6. Dim a = 1
    7. Dim RectangleShape1 As New RectangleShape
    8. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    9. canvas.Parent = Me
    10. For x = 100 To 500 Step 10
    11. For y = 100 To 500 Step 10
    12. essenLocation(a) = New System.Drawing.Point(x, y) 'für die RectangleShapes die später verteilt werden sollen werden Locations ermittelt. Diese sind
    13. a += 1 'auch abgespeichert, was ich schon überprüft habe!
    14. Next
    15. Next
    16. For x = 1 To a Step 1
    17. essen(x).Parent = canvas ' das Essen soll in meinem Bereich abgebildet werden.... Hier vermute ich den Fehler!
    18. With essen(x)
    19. .Location = essenLocation(x)
    20. .Size = New System.Drawing.Size(5, 5)
    21. .BackColor = Color.Black
    22. .BorderColor = Color.Black
    23. .BackStyle = BackStyle.Opaque
    24. End With
    25. Next
    26. End Sub
    27. End Class


    Dies ist mein Code für dieses Verfahren. Jedoch funktioniert er so nicht. Es erscheint einfach nichts :(

    Könntet Ihr mir weiterhelfen? Würde mich sehr über Antworten freuen!!

    Viele Grüße

    Bearbeitet:
    im Code habe ich anstatt das form load event das button click event benutzt aus versuchsgründen!
    Im Form Load Event kommt keine Fehlermeldung im Click Event eine Fehlermeldung (Ein Ausnahmefehler des Typs "System.NullReferenceException" ist in test pionts speichern.exe aufgetreten.

    Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.)
    Mit Verweis auf Zeile ( essen(x).Parent = canvas)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Captain Hobo“ ()

    Willkommen im Forum. :thumbup:

    Captain Hobo schrieb:

    VB.NET-Quellcode

    1. essen(x).Parent = canvas
    Du hast lediglich ein Array für RectangleShape angelegt, die Elemente selbst sind Nothing.
    Machst Du in der doppelten For-Schleife dies:

    VB.NET-Quellcode

    1. essenLocation(a) = New System.Drawing.Point(x, y)
    2. essen(a) = New RectangleShape

    .NET ist Null-basiert, besser ist es, wenn Du mit dem Index 0 beginnen würdest.
    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!