NEO23
Also nachdem meine letzden Themen immer geschlossen wurden versuche ich mal eine vernünftiege Frage zu stellen.
Also ich wollte wissen wie man in Visaul Basic machen kann das wenn z.b. PictureBox1 PictureBox2 berürt das Picture Box 1 dort nicht mehr weiter kann.
Also dass PictureBox2 sozusagen eine Mauer ist die Picture Box1 nicht überwinden kann.
Hoffe mal dieses Thema wird nicht geschlossen.
perle
Ich kenn jetzt den entsprechenden Syntax in VB nicht, aber das müsste in etwa so gehen:
in das OnMove - Event von PictureBox1^(also das event, was aufgerufen wird, wenn sich die box bewegt) überprüfst du :
<pseudocode>
if (picturebox1.left + picturebox.width >= picturebox2.left) then
picturebox1.left = picturebox2.left - picturebox1.width;
if (picturebox1.top + picturebox1.heigth >= pictruebox2.top) then
picturebox1.top = picturebox2.top - picturebox1.height;
</pseudocode>
so dann in etwa für alle anderen Fälle forsetzen.
Wolf
Hatte mal in VBA ein Labyrinth gecodet(siehe Anhang). Aber als "Mauer" kann man das glaubich net machen, weil die ganzen Sachen ja auch übereinander liegen können. Du musst also die Sub, die die PictureBox bewegt überprüfen lassen, ob die Box bei der geplanten Bewegung über die Mauer geht. Wenn Ja, musst du die bewegung verhindern. Etwa so:
| code: |
1:
2:
3:
|
If NOT PicBox1.left + PicBox1.Width = PicBox2.Left Then
Picbox1.Left = PicBox1.left + PicBox1.Width
End if |
|
PicBox1 wird dabei immer um seine eigene Breite nach links verschoben, es sei denn, es hätte dann die gleiche left-eigenschaft wie picbox2. Natürlich sollten Maße und Position so sein, dass die left-eigenschaft von picbox2 nicht übersprungen wird.
PS: Schön, dass Du von dem Plan mit der Weltherschafft Abstand genommen hast