Seite 1 von 2
Search (3d)
Verfasst: 07.04.2008 15:50
von kswb73
Hallo,
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.
Search.zip (2032 KB)
Steuerung
Pfeiltasten: laufen
strg/Leertaste: springen
F12: Screenshout
F11: Minimap an/aus schalten
Verfasst: 07.04.2008 15:56
von gnasen
ähh wie wärs mit ner "etwas" detaillierteren Beschreibung zu dem, was du da gebaut hast?
Verfasst: 07.04.2008 16:06
von STARGÅTE
also ein paar verbesserungsvorschläge:
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

Verfasst: 07.04.2008 16:15
von kswb73
Das liegt daran, dass die Kamera immer auf Terrain gesetz wird.
Mann läuft gegen einen Berg
Das Programm registriert, dass die Kamera im Terrain ist.
Das Programm setzt die Camera auf das Terrain.
Ich schau mal ob ich's hinkriege das man nicht steile Berge hochlaufen kann.
Update
Verfasst: 10.04.2008 16:07
von kswb73
So, Ich habe es jetzt verbessert.
- Minimap
- Abhänge
- neue Position der Punkte
- leicht unebener Boden
- steile Wände kann man nicht mehr hochlaufen (leicht schräg tut's leider noch.
Verfasst: 10.04.2008 16:17
von STARGÅTE
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.
Verfasst: 10.04.2008 16:31
von kswb73
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.
Verfasst: 10.04.2008 16:51
von STARGÅTE
ich meine das so :
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.
Verfasst: 10.04.2008 17:06
von kswb73
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.)
Verfasst: 10.04.2008 17:15
von gnasen
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