AddSplinePoint(), Beschreibung in der Hilfe

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

AddSplinePoint(), Beschreibung in der Hilfe

Beitrag von Makke »

Hallo zusammen,

In der Spline Beschreibung steht, das die Zeit zwischen den Punkten immer gleich ist.

Wenn ich also eine Strecke habe, diese dann durch eine Geschwindigkeit Teile, habe ich den Wert X und erstelle dann soviele SplinePunkte. Und mein Modell rennt dann diese Punkte ab.

Aber, wenn ich jetzt eine größere Entfernung nehme, wird das Modell schneller. Hat jemand schon damit Erfahrungen ?

Wenn Code benötigt wird, reiche ich den gerne noch nach.
---
Windows 11 (64 bit)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: AddSplinePoint(), Beschreibung in der Hilfe

Beitrag von NicTheQuick »

Also ich kapiere gerade gar nicht, was du uns sagen willst. Mir sind zwar keine Begriffe unklar, aber die Beschreibung ist meiner Meinung nach etwas dürftig. Kannst du genauer erklären, was du machen willst? Oder eben deinen Code zeigen plus Beschreibung?
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: AddSplinePoint(), Beschreibung in der Hilfe

Beitrag von Chimorin »

Du fütterst deinen Weg eben mit so vielen gleichmäßig verteilten(!) Punkten, dass dein Modell die vorgeschriebene Geschwindigkeit hat.
Von Knoten zu Knoten verbringt er immer die gleiche Zeit, d.h., je länger der Weg von Knoten zu Knoten ist, desto höher ist die Geschwindigkeit.
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Re: AddSplinePoint(), Beschreibung in der Hilfe

Beitrag von Makke »

Hallo Ihr,

sorry für die dürftige Beschreibung, hier nochmal etwas genauer:

In der Beschreibung zum Spline: "Die Zeit, um von einem Punkt zum nächsten zu gehen, ist immer die gleiche, unabhängig von der Entfernung zwischen diesen Punkten."

Ich habe bisher folgendes gemacht (PseudoCode):

Code: Alles auswählen

maxpoints = distance / speed
stepx = distancex / distance
stepz = distancez / distance
CreateSpline(#Waypoint)
for n = 1 to maxpoints
  AddSplinePoint(#Waypoint, stepx * n, 0, stepz * n)
next
AddSplinePoint(#Waypoint, newx, 0, newz) ; als letzten Punkt, der Zielpunkt
Damit hatte ich dann die Spline Punkte, ich bin jetzt davon ausgegangen, das ComputeSpline() von Punkt zu Punkt berechnet wird, also wenn ich von 0 bis 1 hochzähle, das die die Zeit von den einzelnen Punkten dort oben ist, dem ist aber nicht so, ComputeSpline zählt vom ersten Punkt bis zum letzten Punkt von 0 bis 1. Also musste ich die Geschwindigkeit auch noch bei der Schleife berücksichtigen (PseudoCode):

Code: Alles auswählen

animstep = 0
While NotAmZiel ;-)
  n = speed / distance
  animstep +n
  ComputeSpline(#Waypont, n)
  nextx = SplineX()
  nextz = SplineZ()
  MoveEntity(#Puppe, nextx, 0, nextz, #PB_Absolute)
Wend
Nach einigem rumprobieren bin ich dann dahinter gekommen, trotzdem Danke für die Tips.
---
Windows 11 (64 bit)
Antworten