Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
Hi Leute!
Hab folgendet Problem:
Hab einen Punkt (PlayerPosition) der über ner HeightMap Liegt..
Wie kann ich die Distanz zum "Boden" errechnen ohne Linien von oben runter zu ziehen und Line-Triangle intersection zu prüfen (wie ichs im mom mach was aber wahnsinning Leistung braucht..)
Hab im Forum ma gesucht und folgendes gefunden:http://www.delphigl.com/forum/viewtopic.php?t=2815&highlight=abstand%2A+bode%2A aber daraus werd ich nich so ganz schlau weil meine HeightMap weniger was mit Einheitskreisen etc. zu tun hat sondern aus normalen Höhendaten und daraus errechneten Vertieces besteht.
Aber wie kann ich die SpielerPosition in der Weltmatrix in die zugehörigen X,Z koordinaten meiner Höhendaten einsetzen?
Das wars auch schon!
Thx fürs lesen bis dann!
_________________ mir fällt kein Spruch mehr ein für meine Signatur naja...
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Ich gehe jetzt ma davon aus, dass du mit deinem Player über die Landschaft gehen willst. Also ich würde das so machen(Der Y-Wert eines Punktes bei den Koordinaten X|Z ist in einem Array gespeichert):
(Pseydocode
Dabei "springt" die Spielfigur aber eher über das Spielfeld. Wenn du das ganze "smooth" ( ) haben willst, würde ich eine Sphere-Triangle-Kollision versuchen.
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Man muß doch nur zwischen den 4 Punkten, des Quadrats auf dem man steht, linear interpolieren um die Höher der Heightmap an dieser Stelle zu bekommen. Schnelle Kollision ist ja auch ein Vorteil von Höhenkarten. Solange die halbwegs auf einer Ebene liegen geht das so, ansonsten muß man noch zuerst noch testen auf welcher Hälfte des Quadrates man sich befindet.
Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
Hi und Danke soweit!
Hatte das ja schon in dem Post das ich oben genannt hab gesehen und damit rumprobiert.
Klingt ja auch logisch aber irgendwie kommt da ein falscher Wert raus..
also h is die Distanz zum Boden.
Wenn ich jetzt ins Game geh dann wird zwar ein Wert errechnet aber wenn ich die Höhe des Spielers ändere verändert sich der Wert nicht und ich hab ka warum..
Also der Code sieht bei mir folgendermaßen aus:
Code:
//Playerposition ist halt die Variable in der die Position des Spielers gespeichert wird
Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
Also hab nomma bissel dranrumgebastelt... sieht jetzt so aus:
Code:
h1:=MapDaten[trunc(-PlayerPosition.X),trunc(-PlayerPosition.Z)]/10; // /10 weil ich beim Erstellen der HeightMap auch die Y Werte durch 10 geteilt hab damit die Karte nicht zu groß wird
aber irgendwie wenn ich mich in den Raum bewege der so bei X>80 liegt kommt immer 0 aus der Funktion ?!
Hab ka was da falsch is.. und versteh die 2 zeilen nich hinter denen die ! sind.Also versteh nich was da gerechnet wird
Thx!Cya
_________________ mir fällt kein Spruch mehr ein für meine Signatur naja...
Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
jo hab ich gemacht aber kein unterschied..
da die ja nachdem die sich selbst ändern eh nich mehr gebraucht werden in dem durchlauf wärs eh egal
trotzdem thx.. komm echt nich drauf wo da der bug is...
_________________ mir fällt kein Spruch mehr ein für meine Signatur naja...
Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
Das komische ist: Habe eben zum Test ma ne Map gemalt, bei der alles schawarz is nur ein Strich in der Mitte..
ich lass mit h1-h4 anzeigen.. der strich is bei x: 0 bis 127 (ganz durch) und z: 60 .. aber bei z 40 zeigt er 25,5 in h1-h4 ?!
hab ka was da abgeht...*totalverwirrtbin*
_________________ mir fällt kein Spruch mehr ein für meine Signatur naja...
Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
Upps habs glaub ich gefunden.. habs grad getestet und scheint zu klappen..
Musste die Mapresolution im Verhältnis zur Größe noch einrechnen.. wenn ichs fertig hab post ichs noch grad fallses jemanden interessiert...
_________________ mir fällt kein Spruch mehr ein für meine Signatur naja...
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.