Frage von maijonix, 21

Visual basik Kollision?

Ich bewege mehrere objekte die nicht durcheinander laufen dürfen. ich habe eine timer bewegung und bei einer abrfage auf kollision das problem wenn ich das objekt stoppen möchte fällt mir nichts weiteres ein als den timer zu stoppen oder zu disablen aber danach kann der spieler nicht mehr weiter laufen nachdem es gestoppt wurde da es noch auf der selben position steht zur zeit des stoppens da sie sich ja dann berühren. wie umgehe ich das oder gibt es noch eine andere möglichkeit den timer anzuhalten und bei erneutem tastendruck weiter laufen zu lassen ?!

Antwort
von PWolff, 17

Was spricht dagegen, Timer.Enabled wieder auf True zu setzen?

(Übrigens habe ich deine Beschreibung nciht ganz verstanden. Hast du die Kollisionsprüfung geschafft oder nicht? Warum hältst du überhaupt den Timer an? Hast du schon überlegt, was außer einem "Deadlock" bei einer Kollision sonst noch passieren könnte?)

Kommentar von maijonix ,

Ja die kollisions Prüfung habe ich aber wie halte ich denn sonst mein sich von selbst bewegenden Gegenstand an ?

Wenn ich den timer an halte und direkt wieder starte läuft er komischerweise weiter

Kommentar von PWolff ,

Andere Möglichkeiten:

Gegenstand anhalten:

Gegenstand.Geschwindigkeit = 0

Anstoßen simulieren (bei Bewegung nach rechts):

Gegenstand.Location.Left += Gegenstand.Geschwindigkeit * Bewegungstimer.Interval
Gegenstand.Location.Left = Math.Min(Gegenstand.Bounds.Right, Hindernis.Bounds.Left) - Gegenstand.Bounds.Width

Wann soll denn der Gegenstand weiterlaufen können - wenn überhaupt?

Ohne ein Konzept, was bei einem Hindernis passieren soll (insbesondere, wann, wo und wie der Gegenstand weiterlaufen soll), hat es keinen Sinn, irgendwas am Programmcode zu machen. ("Wer kein Ziel hat, kann auch nicht ankommen.")

Sie kennen die Antwort?

Fragen Sie die Community