Shape-Objekt in Picturebox

cesupa

Erfahrenes Mitglied
Hallo,

ich bin grad dabei ein kleines Spiel zu proggen und hab da ein Problem: Ich habe ein Spielfeld in einer Picturebox gezeichnet, nun möchte ich gerne Shape-Objekte in dieses Spielfeld legen, jedoch wenn ich versuche aus der Werkzeugleiste ein Shape-Objekt auf die Picturebox zu ziehen, verschwindet es gleich in den Hintergrund. Meine Frage: Wie kriege ich das Shape-Objekt in den Vordergrund der Picturebox, also quasi in die Picturebox hinein?

Gruß
cesupa
 
Hallo cesupa,

das versteh ich jetzt nicht ganz. Wenn du im Designer eine PictureBox auf die Form zeichnest und dann in der Toolbox das ShapeObjekt auswählst un in der PictureBox aufspannst, ist die PBox ja ein ganz normal Container für das Shape und es wird ja auch im Vordergrund angezeigt.

Mit Doppelklick auf der Toolbox gehts nicht, aber Shape auswählen und auf PBox aufspannen funktioniert eigentlich einwand frei.
 
Ahh, ja da lag das Problem, ich hab das Shape-Objekt über Doppelklick eingebunden.
Danke für deine Antwort.

Gruß
cesupa
 
Hi, ich hätt da noch ne Frage:

Unzwar hab ich jetzt in meiner Picturebox 2 Punkte die Diagonal zueinander liegen, diese habe ich mit einer Linie verbunden, nun möchte ich, dass das Shape-Objekt dieser Linie vom Punkt A nach Punkt B folgt, ich habs bereits mit dem Satz des Pytagoras versucht, jedoch ohne großen Erfolg, vielleicht hab ichs auch falsch angegangen? Gibt es irgendeine einfache Möglichkeit, das Shape Diagonal der Linie nach zu bewegen?

Gruß
cesupa
 
Wenn du die Positionen der zwei Punkte genau kennst kannst du dir die einzelnen 'Zwischenstücke' ausrechnen.

Ich würde das mit Vektoren machen, klingt dann zwar kompliziert ist aber ziemlich einfach.
Ein Beispiel:

Code:
A
|__
    |__
        |__
            B

Jedes |__ ist ein 'Zwischenstück', oder die schöne mathematische Bezeichnung 'Richtungsvektor'. Wenn du also die Punkte weisst, kennst du auch die Kooridinaten und den Vektor....
Jetzt hast du den Richtungsvektor und den Vektor der Gerade. Somit kannst du mit einem Timer das Objekt 'Stückchenweise' entlang fahren lassen.

Was ich damit sagen wollte:
Rechne dir die Koordinaten der zwei Punkte aus (Scale Mode), zähl sie zusammen, rechne durch z.B.: 10 und lass das Objekt diesen X|Y Wert entlang fahren.
 
Hab ich jetzt nicht so ganz verstanden, also wenn Punkt A die Koordinate 10,10 hat un der Punkt B 1000,1000, wie soll ich das dann genau machen?
 
Also:

Am einfachsten ist es du setzt den ScaleMode auf eine sinnvolle eigenschaft. z.B. 1000, 1000.

Es gibt da so eine nette Halbierungspunkt-Formel:

H =1/2 x (A+B)

hier kann man die Punkte einsetzen. 1/2 ergibt die Hälfte des Vektors AB.
H ergibt die Hälfte des Vektors.

A(5|5)
B(10|10)
H=(7,5|7,5) ... ich hoffe das stimmt jetzt.

Die neue Position des Shapes ist: Left=7,5 | Top=7,5.
So kannst du dir beliebig viel Punkte ausrechnen. Je nachdem wieviel du brauchst für eine ruhige Bewegung.
 
Gut, danke jetzt hab ichs verstanden. Funktioniert einwandfrei, vielen dank für deine Antwort.

Gruß
cesupa
 
Zurück