Kollisionsabfrage
Übersicht

MayoBetreff: Kollisionsabfrage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich bin jetzt soweit, dass ich mir eine Insel gebaut habe und drum herum mit einer Ebene das "Meer". Nun möchte ich eine Figur auf dieser Insel umher laufen lassen die, sobald sie ins "Wasser" geht wieder umdreht und woanders lang läuft. Nun habe ich mir überlegt dass ich die Y-Position der Figur abfrage und wenn diese kleiner ist als die Oberfläche der Insel ist, dann soll die figur sich drehen. Nur wenn ich das so realisiere dreht die figur am Ende doch nur noch um Kreis weil sie ja nicht wieder bis auf die Oberfläche der Insel zurück kommt. Hat jemand eine Idee oder sowas schonmal irgendwie anders realisiert? MfG |
||
![]() |
das wurgel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nachdem du die Figur gedreht hast, speicherst du in eine Variable True, und drehst nicht, solange diese True ist. Die Variable wirt erst wieder auf False gesetzt sobald der Y Wert einen bestimmten Wert überschritten hat, der ein bisschen höher liegt als die Wasseroberfläche. | ||
1 ist ungefähr 3 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst dann, wenn es zu Kollision gekommen ist, den letzten "Schritt ins Wasser" zurücknehmen, um die Figur wieder an Land zu setzen, dann drehen und weiter geht es! | ||
Mayo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ Midimaster: exakt so habe ich es mir auch gedacht. doch das will nicht. Dann dreht sie sich meist im Kreis.
Wenn ich es so mache wie das wurgel dann rennt die Figur ja genau in die Richtung zurück aus der sie gekommen ist. Würde also immer nur vom einen Ufer zum anderen laufen?! Oder habe ich dich falsch verstanden? MfG |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja, das mit dem Schritt zurücknehmen ist schon richtig, denn eigentlich soll die Figur ja gar nicht "unter" die Insel gelangen können. Der Schritt (hier mal s%) erfolgt immer vor dem Renderworld().
Schon nach dem... BlitzBasic: [AUSKLAPPEN] MoveEntity Figur, 0, 0, s...kannst Du die EntityY(Player) testen lassen und sofort den Schritt zurücknehmen: BlitzBasic: [AUSKLAPPEN] MoveEntity Figur, 0, 0, -s. Nun erfolgt die Drehung, die ja nicht zwangsläufig 180° sein muss! BlitzBasic: [AUSKLAPPEN] TurnEntity Figur, 0, 90+Rand(180), 0...was dann eine zufällige Richtungen "nach hinten" ermöglicht. Sofort wieder testen und gegebenenfalls gleich wieder zurücknehmen: BlitzBasic: [AUSKLAPPEN] MoveEntity Figur, 0, 0, -s.Erst nach einer "erfolgreichen" Drehung geht das Spiel weiter und es erfolgt Renderworld() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group