Ich hab ein kleines Spiel mit der PureBasic3d Engine programmiert. Ziel des Spieles ist alles Geld (entweder 3d-Objecte oder Billboards) einzusammeln. Dabei muss man aufpassen das man nicht zu tief fällt, da man sonst Leben verliert. Sammelt man einen Punkt ein so erhält man wieder etwas Leben.
Die Welt ist noch zimlich platt, und die Berge zimlich steil, da solltest du ein bisschen mehr "fein"-Zeug einbauen. zB einfach in Terrain.PNG noch ein paar kleine Farbunterschieben einbauen, und schon ist das ein bisschen welliger.
Desweiteren sind die "Wände" etwas unsinnig wenn am gegenläuft ist man oben drauf
die Umgebung sie hügellich schon etwas ansprechender aus, trotzdem stört mich irgendwie das alles so "über groß" ist.
Das man steine Wände nicht mehr hochkommt, hast du ja schon "fast" eingebaut, nur leider kann ich trotzdem immer noch "pixelweise" hochspringen.
Ich glaube bei der Kollisionsabfrage reicht es nicht das ganze vom Terrain abhängig zu machen, vllt musst du noch eine Kollisionskarte erstellen, in der genau drinne steht (zB ein Array) ob man weiter laufen darf oder nicht.
Ich hatte mir überlegt das man abrutscht, wenn man auf steilen Gelände steht.
Bei einer Kollisionsmap könnte man ja immer noch "Pixelweise" hochspringen oder könnte nicht über klippen springen.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
du richtes dir ein Array ein was so groß ist wie deine Map (257*257) oder so.
und in dieses Array schreibst du dann selber (oder ließt diese Array selber aus eine eigenen BMP datei) an welchen stellen es "rechte" Wände geben soll.
Sodass dann dein Terrain nix mehr damit zu tun hat.
Die kamara bleibt ja weiter auf dem terrain drauf, aber wenn man dnan läuft, und deine Kollisionskontrolle merkt das du von "boden" auf eine Wand laufen willst, lässt du das einfach nicht zu. Du berüst sozusagen garnicht den Anfang der Klippe, sonder wirst vorher durch das erray zurückgehalten.
Beipsiel: das Array ist voller Nullen, und nur an steinen Klippen stehen Einsen. Auf dem Berg sind wieder Nullen.
Mann muss die Höhe mitberechnen! Würde man das nicht tuen könnte folgendes passeieren:
Möglichkeit a (Mann kann die Felder mit 1 überhauptnicht betreten)
Man will von einer Klippe springen. Wenn man fast über den Rand ist prallt man von einer unsichbaren Mauer ab. Diese Mauer ist die Klippe, die ja eigentlich nur von unten ein Hinderniss darstellt.
Möglichkeit b (Mann kann nur nicht über die Felder laufen)
Jetzt könnte man ganz einfach auf die Klippe springen (ist ja nicht ganz schräg) und dann landet man irendwo auf der Klippe. Von dort aus könnte man dann wieder weiter nach oben springen, da ja nur blockiert wird wenn man dürber läuft. (So ähnlich mache ich es ja gerade nur das hier die höhe der neuen Position der Kamera mit der Alten verglichen wird. Ist der höhenunterschied dann zu groß wird die Bewegung nicht gewertet.)
Zuletzt geändert von kswb73 am 10.04.2008 17:20, insgesamt 1-mal geändert.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Dann könnte man doch die Höhe vom Terrain benutzen und schauen ob die zu betretene koordinate nicht um mehr als delta z nach oben abweicht.
Nach unten wäre somit ja kein Problem für die Klippenspringer