Kollisionsabfrage

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Mayo

Betreff: Kollisionsabfrage

BeitragDo, Jun 10, 2010 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Jun 10, 2010 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Jun 10, 2010 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Jun 10, 2010 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
@ 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

BeitragFr, Jun 11, 2010 7:50
Antworten mit Zitat
Benutzer-Profile anzeigen
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
MoveEntity Figur, 0, 0, s
...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()

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group