Pictureboxen random "einfliegen" lassen

  • VB.NET

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

    Pictureboxen random "einfliegen" lassen

    Hallo Leute,

    ich bin ein ziiiieemlicher Anfänger,was VBA betrifft, allerdings müssen wir in der Schule ein kleines Spiel programmieren.
    Und jetzt gerade, habe ich mich einen Vorhaben ein kleines Problem :/ , und zwar:
    ich möchte, wie bei "Car race", dass meine Figur, den Gegnern ausweichen muss. Das die Gegner (von quasi oben[sorry für meine klägliche beschreibung]) kommen und ziemlich random habe ich schon.
    Aber es wiederholen sich immer nur die ersten drei Gegner ( in Form von Pictureboxen btw).
    Und jetzt möchte ich das zufällige Pictureboxen von oben erscheinen...

    Kann mir da jemand helfen?

    (ich hoffe ich konnte mich einigermaßen klar ausdrücken)
    Willkommen im Forum.
    Da können wir auf jeden Fall weiterhelfen. Aber erstmal:
    1. In welcher Umgebung bist Du unterwegs? Visual Studio (so wurde der Thread von Dir getaggt, nämlich VB.Net) oder Excel/Word/irgendwas Office-mäßiges? Denn da wären wir bei VBA.
    2. Zeig mal bitte Deinen Random-Code für die bisherigen Gegner.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hi Mieja

    Habe ich das richtig verstanden, du willst, dass die Pictureboxen mit den Gegnern an einer zufälligen Position oben in der Form auftauchen?
    Wenn dies der Fall ist, würde ich den RandomAlgo verwenden und den Output des RandomAlgo als picturebox Position verwenden.

    Du musst diesen Code jedesmal aufrufen, wenn die Gegner an ihrer Endpositionen angekommen sind.

    VB.NET-Quellcode

    1. Dim wert1 As Integer
    2. Randomize()
    3. Dim maximalbereich As Integer = Me.Size.Width - PictureBox1.Size.Width
    4. wert1 = Int((maximalbereich * Rnd()) + 0) 'Zufällige Zahl im Bereich von 0 bis (Deine Form Grösse - grösse deiner Picturebox) (damit es nicht ausserhalb deiner form erscheint)
    5. PictureBox1.Location = New Point(wert1, 0)
    "Die menschliche Vorstellungskraft ist unendlich"
    ->Versuch dir mal 'ne neue Farbe auszudenken!

    Mit Schleifen kann man alles lösen!

    Dim d as Double = 1
    Do until d = 0
    d = (d / 2)
    Loop
    @Mieja Willkommen im Forum. :thumbup:
    @M-Stef Na aber.

    VB.NET-Quellcode

    1. Private rnd = New Randomize()
    2. Private Sub MovePictuteBox()
    3. Dim maximalbereich As Integer = Me.Size.Width - PictureBox1.Size.Width
    4. PictureBox1.Location = New Point(rnd.Next(maximalbereich), 0) ' allerdings hüpft hier die Box rum und fliegt nicht ein!
    5. End Sub

    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!
    @RodFromGermany
    Private rnd = New Randomize()

    Das kann man sich auch sparen, der RandomAlgo funktioniert auch so tadellos. VB.NET kann die Funktion auch ohne Definierung ausführen.
    rnd.Next(maximalbereich)

    Das kann man sich auch sparen, denn der maximalbereich wird bei jedem Aufruf neu berechnet.

    Und das ist klar, das es nicht eingeflogen kommt. Aber um dies zu erreichen könnte man ganz einfach zum Beispiel die Y Position der Picturebox statt auf 0 auf ausserhalb der Form setzten. Zum Beispiel PictureBox1.Location = New Point(wert1, (0 - picturebox1.size.height))
    Dann nur noch mithilfe eines Timers die Picturebox bewegen.

    VB.NET-Quellcode

    1. picturebox1.location = new point(picturbox1.location.x, picturebox1.location.y + 5)
    "Die menschliche Vorstellungskraft ist unendlich"
    ->Versuch dir mal 'ne neue Farbe auszudenken!

    Mit Schleifen kann man alles lösen!

    Dim d as Double = 1
    Do until d = 0
    d = (d / 2)
    Loop

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „M-Stef“ ()

    M-Stef schrieb:

    der RandomAlgo funktioniert auch so tadellos.
    Ist aber VB6-Ranz und nicht VB.NET. Deswegen.
    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!