# Position der ViewingPlatform als Point3d-Objekt?



## MPW (9. Mai 2005)

Hallo,

ich brauche für ein kleines Spiel ein TerrainFollowing...

Ich möchte zunächst gucken, ob von der ViewingPlatform(dem Spieler, der selber nicht gezeigt wird), nach unten etwas ist, worauf er steht, oder ob er in die Tiefen stürzen (müsste).

Also, ich dachte mir ein PickRayObjekt zu bneutzen:

die direction ist leicht: new Vector(0f, 1f, 0f), aber wie bekomme ich den origin, Punkt der ViewingPlatform, es gibt nur Methoden um die TransformGroup zu bestimmen, gibt es da irgendeine Möglichkeit?

Danke für eure HIlfe!

MfG
Matthias


----------



## Illuvatar (9. Mai 2005)

Wenn du eh die TransformGroup hast, dann kannst du dir doch mit getTransform das Transform3D Objekt holen und mit get(Vector3f) daraus die Verschiebung bestimmen.


----------



## MPW (9. Mai 2005)

Aja, so die Theorie...in der Praxis blick ich nicht ganz durch?

Müsste da nicht der Returnwert ein Vector sein, statdessen steht der Vector bei den Argumenten, was ist dat denn für 'ne Methode?




```
PickTool pick = new PickTool(RootBG);
			pick.setShapeCylinderRay(uni.getViewingPlatform().getViewPlatformTransform().getTranslation().get(Vector3f), new Vector3d(0f, -1f, 0f), 0.2);
```
^^das funktioniert auf jeden Fall schonmal nicht...höchstwarscheinlich, weil ich zu dämlich bin...könntet ihr mir nochmalst helfen?

ach ja, error:


```
C:\Programme\java\Progs\MPWJumper\MPWJumper.java:168: cannot find symbol
symbol  : variable Vector3f
location: class MPWJumper
			pick.setShapeCylinderRay(uni.getViewingPlatform().getViewPlatformTransform().getTranslation().get(Vector3f), new Vector3d(0f, -1f, 0f), 0.2);
                                                                                                                          ^
C:\Programme\java\Progs\MPWJumper\MPWJumper.java:168: cannot find symbol
symbol  : method getTranslation()
location: class javax.media.j3d.TransformGroup
			pick.setShapeCylinderRay(uni.getViewingPlatform().getViewPlatformTransform().getTranslation().get(Vector3f), new Vector3d(0f, -1f, 0f), 0.2);
                                                                       ^
2 errors

Process completed with exit code 1
```

Danke schonmal für den Tipp..mir ist der logische Zusammenhang jedoch nicht ganz klar...

MfG
Matthias Walther


----------



## Illuvatar (9. Mai 2005)

```
Transform3D myTransform = new Transform3D();
uni.getViewingPlatform().getViewPlatformTransform().getTransForm (myTransform);
Vector3f position = new Vector3f();
myTransform.get (position);
```


----------



## MPW (9. Mai 2005)

grmpf..."void type not allowed here", ich brauch' nen Point3d Objekt!
Außerdem kennt der irgendwie die Funktion getTransForm(mytransform) nicht, er beschwert sich nämlich immer....


----------



## MPW (9. Mai 2005)

Ah, jetzt hab' ichs, das muss heißen getTransform(<<kleines f).

aber wie krieg' ich dann aus dem Vector position 'nen Point3dObjekt?


----------



## Illuvatar (9. Mai 2005)

Sry wegen TransForm, das hab ich grad ausm Kopf getippt 

http://www.seas.ucla.edu/java3d/javax/vecmath/Point3d.html#Point3d(javax.vecmath.Tuple3f)


----------



## MPW (9. Mai 2005)

Ja wunderbar! Ich glaube für's erste passt das...Danke!;-)


----------



## Oxygenic (10. Mai 2005)

MPW hat gesagt.:
			
		

> ich brauche für ein kleines Spiel ein TerrainFollowing...



Apropos Terrainfollowing...

(die URL bitte komplett zusammensetzen, das Board hier hat nen Bug...)


----------



## MPW (10. Mai 2005)

hä, wie jetzt, poste die doch einfach als text, ich weiß jetzt nicht wie ich das puzzeln muss....


----------



## MPW (10. Mai 2005)

Aha, hab jetzt bis .html einfach genommen...

ist die Api...aha..kann ich meistens eh nicht viel mit anfange, weil ich's nicht checke.

Gibt es für soetwas irgendwo Beispiele, am Besten Deutsch? In Java3D für Anfänger und Fortgeschrittene wird das Theman nur sehr rar behandelt.

Überhaupt: Hat jemannd einen guten Buchtipp für mich...und *bitte, bitte keine "google mal 'ne Runde"-Aussagen!*Danke!

MfG
Matthias

Ps.: ^^Wenn's gut ist darf's auch was kosten.


----------



## Illuvatar (10. Mai 2005)

Oxygenic meite, dass du die (sehr nützliche) XTools - API von http://www.3dchat.org/ benützen könntest, in welcher es die Klasse com.vwp.j3d.utils.behaviors.keyboard.KeyNavigatorBehavior gibt, die die Methode setFollowTerrain(boolean, com.vwp.j3d.XBranchGroup, double) hat, womit du das ganze sehr einfach geht.

API lesen und ebenso Englisch wisrst du lernen müssen, ohne geht nix.

Geld wollen wir hier keins, deshalb isses ja nen Forum


----------



## MPW (10. Mai 2005)

Aso, der Link war allgemein auf die Api gezogen, LOL die hab' ich auf der Festplatte!
Ähm, das mit dem Buch war schon ernst gemeint...das ich ja nicht mit jeder Frage das Forum belasten möchte(mehr die schwereren) und mal ein bisschen Grundstoff lernen möchte...

Naja, ich werd' das mit dem TerrainFollow mal ausprobieren. Danke!;-)

MfG
Matthias Walther


----------

