Position eines Objektes auslesen.

Status
Nicht offen für weitere Antworten.

Franky

Mitglied
Hallo Leuds,

ich habe das Probelm, dass ich eine Bewegung für eine Objekt definiert habe.
Bei einer Kolision soll sich die Richtung ändern.

Habt Ihr eine Idee wie ich die Position des Objektes auslesen könnt?

Vielleicht über die TG wo es dran hängt? Oder Über Shape3D?
Mit und der Boundingspehre auslesen habe ich auch versucht, hatte bis jetzt keine Erfolg.

Ich habe was mit getPosition probiert, hat aber nicht geklappt.

Bitte um Hilfe!


Mfg Frank
 

Illuvatar

Top Contributor
Node#getLocalToVworld
http://www.seas.ucla.edu/java3d/javax/media/j3d/Node.html#getLocalToVworld(javax.media.j3d.SceneGraphPath, javax.media.j3d.Transform3D)
 

Franky

Mitglied
Hallo,

das war ne gute Idee, aber jetzt bekomm ich immer folgende
Fehlermeldung...
Node: local to vworld transform is undefined for a node that is not part of a live scene graph

Ich habe schon alles mögliche versucht..
Habt ihr eine Idee?
 

Illuvatar

Top Contributor
??? Wieso willst du die Position auslesen wenn der Scenegraph noch net live ist? Dann kommt ja wohl auch die Fehlermeldung.
 

Franky

Mitglied
Hmmm, der müsste doch live sein oder nicht?
wenn ich das Programm sonnst ausführe läuft doch alles und es wird auch angezeigt.

Oder wie kann ich denn dann den Scengraph live setzen?

mfg
 

Illuvatar

Top Contributor
Sobald er angezeigt wir ist er live. Dann dürfte der Fehler oben allerdings kaum auftreten. Zeig mal bissle Code.
 

Franky

Mitglied
Der Code ist nicht sehr sauber... ich hoffe ihr Blickt durch :)

Code:
public class start3 extends JFrame
{
	private JPanel m_content_panel;	
	public static Canvas3D m_canvas3d; 
	private SimpleUniverse m_simpleu = null;
	private BranchGroup m_scene;
	private final double SIZE=2.0*Math.PI, STEP=30;
	public  SymMouse       aSymMouse=new SymMouse();
	static TransformGroup TG_Auswahl;
	public static BranchGroup obj_root = new BranchGroup();
	Appearance       BLAU1Appearance=new Appearance();
	Shape3D          shape1;
	TransformGroup auswahlTG;
	TransformGroup control;
	public BoundingSphere bounds=new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);
	TransformGroup content;
	BoundingSphere boundssound=new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);
	public static Point3f test;
	public static PointLight lightB1;
	Transform3D Trans_TG1; 
	
		Bounds boundsTeil1;
		Bounds boundsTeil2;
		Bounds boundsTeil3;
		Bounds boundsTeil4;
		Bounds boundsTeil5;

	
	static	boolean teil1 = false;
	static	boolean teil2 = false;
	static	boolean teil3 = false;
	static	boolean teil4 = false;
	static	boolean teil5 = false;
	
//**********************************************************	
	public static  int cp = 1; //aktuelle position       verbinden mit   aktivem element 
	
	public static int ccp;
									 // X                Z
	public static float[][] pos1 = {{-1.5708f,0.0f},
									{3.1416f, 0.0f},
					 				{1.5708f, 0.0f},
					 				{0.0f,    1.5708f},
					 				{0.0f,   -1.5708f},};    

	public static boolean cube_e_0 = false;	
	public static boolean cube_e_1 = false;	
	public static boolean cube_e_2 = false;	
	public static boolean cube_e_3 = true;	
	public static boolean cube_e_4 = false; 
	
	
	public static float[] pos2 = {0.0f,1.5708f,3.1416f,-1.5708f};
	
	public static  int cr = 1;// pos3[1][aktives elemrnt] 

	public static float ccr;
	
	
	//                                 t0   t1   t2   t3   
//**********************************************************	
	public static int move_test[][]= {{3,2 ,4,3 ,1,0 ,5,1},
									  {0,2 ,4,2 ,2,0 ,5,2},
					 			      {1,2 ,4,1 ,3,0 ,5,3},
					 				  {2,2 ,4,0 ,0,0 ,5,0},
					 			   	  {3,1 ,2,1 ,1,1 ,0,1},
									  {3,3 ,0,3 ,1,3 ,2,3},};
									  
	public static int pos3[][]= {{0,3,0,2, 0 ,0},//element
								 {0,3,0,2, 0 ,0},//rotation
								 {0,4,8,12,16,20},};
		
//**********************************************************

	public start3(int width, int height)
	{   
		super("Happy Cube");
		
		BranchGroup obj_root = new BranchGroup();
		obj_root.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		obj_root.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
		
		m_content_panel = new JPanel();
    	
    	GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
		m_canvas3d = new Canvas3D(config);
		m_canvas3d.addMouseListener(aSymMouse);

		
		this.setContentPane(m_content_panel);
		m_content_panel.setLayout(new BorderLayout());
		this.m_content_panel.add("Center",m_canvas3d);
		
		m_simpleu = new SimpleUniverse(m_canvas3d);
		AudioDevice audioDev = m_simpleu.getViewer().createAudioDevice();
		audioDev.setAudioPlaybackType(AudioDevice.STEREO_SPEAKERS);
		
		m_simpleu.getViewingPlatform().setNominalViewingTransform();	
		m_scene = createSceneGraph();
		m_simpleu.addBranchGraph(m_scene); 
            /*************************************************************************
	                //Hier versuchen wir die derzeitige Position der Trans_TG1 auszulesen
		TransformGroup test = new TransformGroup();
		test.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
                 	test.setCapability(TransformGroup.ALLOW_AUTO_COMPUTE_BOUNDS_WRITE); 
		test.setCapability(TransformGroup.ALLOW_LOCAL_TO_VWORLD_READ);
		test.getLocalToVworld(Trans_TG1);
            /***********************************************************************		
		System.out.println("Versuch: "+ Trans_TG1);
		
		this.addWindowListener(new WindowClosingAdapter()); 
		this.setBackground(new Color(0,0,0));
		this.setSize(width, height);
		this.setVisible(true);
		m_scene.compile(); 
	}
	
	private TransformGroup createLights() //fertig
	{
		
		// 1.3.1
		Vector3f direction1 = new Vector3f(0.0f, -1.0f, 0.0f); 
		direction1.normalize();
		
		// 1.3		
		DirectionalLight lightD1 = new DirectionalLight();
		lightD1.setInfluencingBounds(new BoundingSphere());
		lightD1.setDirection(direction1);
		
		// 1.2
		PointLight lightB = new PointLight();
		lightB.setInfluencingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),600.0));
		lightB.setPosition(0f,2f,2f);
			
		
		// 1.1
		AmbientLight lightA = new AmbientLight();
		lightA.setInfluencingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),600.0));
		
		// 1
		TransformGroup lightTG = new TransformGroup();
		lightTG.addChild(lightA);
		lightTG.addChild(lightB);
		lightTG.addChild(lightD1);
		
		return lightTG;
 	}
 	
 	
    public BranchGroup createSceneGraph() // fertig
	{	
	 	TransformGroup sceneBG = new createBG();
		// 1.1.3
		TransformGroup sceneLight = createLights(); 
		
		
		BLAU1Appearance.setMaterial(new Material(new Color3f(0f,0f,1f),new Color3f(0f,0f,0f),new Color3f(0f,0f,0f),new Color3f(1f,1f,1f),100f));
		
		//Behavior blau 1 
    	 bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),10.0);
	
		KeyBehavior KeyCtrl=new KeyBehavior();
   		KeyCtrl.setSchedulingBounds(bounds);
  		 obj_root.addChild(KeyCtrl);
  		 
  		 
  	    
		//Positionierung des gesamten Cubes
		Vector3f v3 = new Vector3f(-0.3f,0.0f,0.0f);
		Transform3D ST = new Transform3D();
		ST.setTranslation(v3);
		
		content = new createMouseBehavior();
		
		content.setTransform(ST);
		content.addChild(new control());
        float xTG = 0.8f;///POS Rechts
        float transparenz = 1.0f;
        
        ///AUSWAHL1!///1 
        Transform3D drehT3D1 = new Transform3D();
        drehT3D1.rotX(Math.PI/2);
        TransformGroup drehTG1 = new TransformGroup(drehT3D1);
       	
       	Transform3D scalTG1 = new Transform3D();
    	scalTG1.set(0.025f);
  		TransformGroup TG1Scal = new TransformGroup(scalTG1);
  		TG1Scal.addChild(drehTG1);
  		
  		Trans_TG1 = new Transform3D();
     	Trans_TG1.setTranslation(new Vector3f(xTG,0.5f,0.0f));
     	
     	
     	TransformGroup TG1 = new TransformGroup(Trans_TG1);
     	TG1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
     	TG1.setCapability(TransformGroup.ALLOW_AUTO_COMPUTE_BOUNDS_WRITE); 
		TG1.setCapability(TransformGroup.ALLOW_LOCAL_TO_VWORLD_READ);
     	TG1.addChild(TG1Scal);
       
        element_rot_1 geom1 = new element_rot_1();
        for (int n=0; n<geom1.getShapeCount(); n++)
		drehTG1.addChild(geom1.getShape(n));
		
    						//Breite	//Höhe	//Dicke
    	//0.125, 0.125, 0.033 ,1
       	 Shape3D box1 = new Box(0.13, 0.13, 0.036 ,1);
    	box1.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
    //	box1.setBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),1.0));
    	TG1.addChild(box1);
        
        /// Farbe Würfel
        Appearance app1 = new Appearance();
        app1.setMaterial(new Material(new Color3f(0.5f,0f,0.5f),new Color3f(0f,0f,0f),new Color3f(1f,0f,0f),new Color3f(1f,1f,1f),100f));
        box1.setAppearance(app1);
        ColoringAttributes ca1 = new ColoringAttributes();
		ca1.setColor(0.6f, 0.3f, 0.0f);
		app1.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_WRITE);
		app1.setColoringAttributes(ca1);
		app1.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.NICEST,transparenz));
        
        // Bewegung Teil1
        Transform3D	yAxis1 = new Transform3D();
     	yAxis1.rotX(1.54f);
    															//duration
		Alpha animAlpha1 = new Alpha (-1,Alpha.INCREASING_ENABLE,0,0,9000,0,0,0,0,0); 
		KBKeyFrame[]	splineKeyFrames1 = new KBKeyFrame[2];
     	
     	Vector3f           pos_10  = new Vector3f( xTG,0.0f,-0.5f);// Zahlenwerte sind verschoben! YWert ist vertauscht! 
     	Vector3f           pos_11  = new Vector3f( 0.0f, 0.0f, 0.0f);
	   	
	   	Point3f p1   = new Point3f (pos_10);         
		  float head1  = 0.0f;  // y-achse         
		  float pitch1 = 0.0f;  // z-achse FALSCH                         
		  float bank1  = 0.0f;  // x-achse                          
		  Point3f s1   = new Point3f(1.0f, 1.0f, 1.0f); 
		  splineKeyFrames1[0] = new KBKeyFrame(0.0f, 0, p1, head1, pitch1, bank1, s1, 0.0f, 0.0f, 0.0f); 
		
		  p1 = new Point3f (pos_11);
		  head1  = 0.0f;                              
		  pitch1 = 0f;                              
		  bank1  = 0f;                
		  splineKeyFrames1[1] = new KBKeyFrame(1.0f, 0, p1, head1, pitch1, bank1, s1, 0.0f, 0.0f, 0.0f); 

		KBRotPosScaleSplinePathInterpolator splineInterpolator1 = new KBRotPosScaleSplinePathInterpolator(animAlpha1, TG1,yAxis1, splineKeyFrames1); 
		splineInterpolator1.setSchedulingBounds(bounds);
		
		
	
		TransformGroup TG1Move = new TransformGroup();
		TG1Move.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		TG1Move.addChild(splineInterpolator1); 
		TG1Move.addChild(TG1);

 //////AUSWAHL2!/////////////////////////////////// 
       
        Transform3D drehT3D2 = new Transform3D();
        drehT3D2.rotX(Math.PI/2);
        TransformGroup drehTG2 = new TransformGroup(drehT3D2);
       	
       	Transform3D scalTG2 = new Transform3D();
    	scalTG2.set(0.025f);
  		TransformGroup TG2Scal = new TransformGroup(scalTG2);
  		TG2Scal.addChild(drehTG2);
  		
  		Transform3D Trans_TG2 = new Transform3D();
     	Trans_TG2.setTranslation(new Vector3f(xTG,0.3f,0.0f));
     	
     	TransformGroup TG2 = new TransformGroup(Trans_TG2);
     	TG2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
     	TG2.addChild(TG2Scal);
       
        element_rot_2 geom2 = new element_rot_2();
        for (int n=0; n<geom2.getShapeCount(); n++)
		drehTG2.addChild(geom2.getShape(n));
        
        Shape3D box2 = new Box(0.13, 0.13, 0.036 ,2);
    	box2.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
    //	box2.setBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),1.0));
    	TG2.addChild(box2);
        
        /// Farbe Würfel
        Appearance app2 = new Appearance();
        app2.setMaterial(new Material(new Color3f(0.5f,0f,0.5f),new Color3f(0f,0f,0f),new Color3f(1f,0f,0f),new Color3f(1f,1f,1f),100f));
        box2.setAppearance(app2);
        ColoringAttributes ca2 = new ColoringAttributes();
		ca2.setColor(0.6f, 0.3f, 0.0f);
		app2.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_WRITE);
		app2.setColoringAttributes(ca2);
		app2.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.NICEST,transparenz));
        
        // Bewegung Teil2
        Transform3D	yAxis2 = new Transform3D();
     	yAxis2.rotX(1.54f);
    															//duration
		Alpha animAlpha2 = new Alpha (-1,Alpha.INCREASING_ENABLE,0,0,9000,0,0,0,0,0); 
		KBKeyFrame[]	splineKeyFrames2 = new KBKeyFrame[2];
     	
     	Vector3f           pos_20  = new Vector3f( xTG,0.0f,-0.3f);// Zahlenwerte sind verschoben! YWert ist vertauscht! 
     	Vector3f           pos_21  = new Vector3f( 0.0f, 0.0f, 0.0f);
	   	
	   	Point3f p2   = new Point3f (pos_20);         
		  float head2  = 0.0f;  // y-achse         
		  float pitch2 = 0.0f;  // z-achse FALSCH                         
		  float bank2  = 0.0f;  // x-achse                          
		  Point3f s2   = new Point3f(1.0f, 1.0f, 1.0f); 
		  splineKeyFrames2[0] = new KBKeyFrame(0.0f, 0, p2, head2, pitch2, bank2, s2, 0.0f, 0.0f, 0.0f); 
		
		  p2 = new Point3f (pos_21);
		  head2  = 0.0f;                              
		  pitch2 = 0f;                              
		  bank2  = 0f;                
		  splineKeyFrames2[1] = new KBKeyFrame(1.0f, 0, p2, head2, pitch2, bank2, s2, 0.0f, 0.0f, 0.0f); 

		KBRotPosScaleSplinePathInterpolator splineInterpolator2 = new KBRotPosScaleSplinePathInterpolator(animAlpha2, TG2,yAxis2, splineKeyFrames2); 
		splineInterpolator2.setSchedulingBounds(bounds);
	
		
		TransformGroup TG2Move = new TransformGroup();
		TG2Move.addChild(splineInterpolator2); 
     
        TG2Move.addChild(TG2);
        ////Auswahl3 //////////////////////////////
        Transform3D drehT3D3 = new Transform3D();
        drehT3D3.rotX(Math.PI/2);
        TransformGroup drehTG3 = new TransformGroup(drehT3D3);
       	
       	Transform3D scalTG3 = new Transform3D();
    	scalTG3.set(0.025f);
  		TransformGroup TG3Scal = new TransformGroup(scalTG3);
  		TG3Scal.addChild(drehTG3);
  		
  		Transform3D Trans_TG3 = new Transform3D();
     	Trans_TG3.setTranslation(new Vector3f(xTG,0.1f,0.0f));
     	
     	TransformGroup TG3 = new TransformGroup(Trans_TG3);
     	TG3.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
     	TG3.addChild(TG3Scal);
       
        element_rot_3 geom3 = new element_rot_3();
        for (int n=0; n<geom3.getShapeCount(); n++)
		drehTG3.addChild(geom3.getShape(n));
        
        Shape3D box3 = new Box(0.13, 0.13, 0.036 ,3);
    	box3.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
    	TG3.addChild(box3);
        
        /// Farbe Würfel
        Appearance app3 = new Appearance();
        app3.setMaterial(new Material(new Color3f(0.5f,0f,0.5f),new Color3f(0f,0f,0f),new Color3f(1f,0f,0f),new Color3f(1f,1f,1f),100f));
        box3.setAppearance(app3);
        ColoringAttributes ca3 = new ColoringAttributes();
		ca3.setColor(0.6f, 0.3f, 0.0f);
		app3.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_WRITE);
		app3.setColoringAttributes(ca3);
		app3.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.NICEST,transparenz));
        
        // Bewegung Teil3
        Transform3D	yAxis3 = new Transform3D();
     	yAxis3.rotX(1.54f);
    															//duration
		Alpha animAlpha3 = new Alpha (-1,Alpha.INCREASING_ENABLE,0,0,9000,0,0,0,0,0); 
		KBKeyFrame[]	splineKeyFrames3 = new KBKeyFrame[2];
     	
     	Vector3f           pos_30  = new Vector3f( xTG,0.0f,-0.1f);// Zahlenwerte sind verschoben! YWert ist vertauscht! 
     	Vector3f           pos_31  = new Vector3f( 0.0f, 0.0f, 0.0f);
	   	
	   	Point3f p3   = new Point3f (pos_30);         
		  float head3  = 0.0f;  // y-achse         
		  float pitch3 = 0.0f;  // z-achse FALSCH                         
		  float bank3  = 0.0f;  // x-achse                          
		  Point3f s3   = new Point3f(1.0f, 1.0f, 1.0f); 
		  splineKeyFrames3[0] = new KBKeyFrame(0.0f, 0, p3, head3, pitch3, bank3, s3, 0.0f, 0.0f, 0.0f); 
		
		  p3 = new Point3f (pos_31);
		  head3  = 0.0f;                              
		  pitch3 = 0f;                              
		  bank3  = 0f;                
		  splineKeyFrames3[1] = new KBKeyFrame(1.0f, 0, p3, head3, pitch3, bank3, s3, 0.0f, 0.0f, 0.0f); 

		KBRotPosScaleSplinePathInterpolator splineInterpolator3 = new KBRotPosScaleSplinePathInterpolator(animAlpha3, TG3,yAxis3, splineKeyFrames3); 
		splineInterpolator3.setSchedulingBounds(bounds);
	
		
		TransformGroup TG3Move = new TransformGroup();
		TG3Move.addChild(splineInterpolator3); 
     
        TG3Move.addChild(TG3);
        
        ////Auswahl4/////////////////////////////////
        Transform3D drehT3D4 = new Transform3D();
        drehT3D4.rotX(Math.PI/2);
        TransformGroup drehTG4 = new TransformGroup(drehT3D4);
       	
       	Transform3D scalTG4 = new Transform3D();
    	scalTG4.set(0.025f);
  		TransformGroup TG4Scal = new TransformGroup(scalTG4);
  		TG4Scal.addChild(drehTG4);
  		
  		Transform3D Trans_TG4 = new Transform3D();
     	Trans_TG4.setTranslation(new Vector3f(xTG,-0.1f,0.0f));
     	
     	TransformGroup TG4 = new TransformGroup(Trans_TG4);
     	TG4.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
     	TG4.addChild(TG4Scal);
       
      	element_rot_4 geom4 = new element_rot_4();
        for (int n=0; n<geom4.getShapeCount(); n++)
        drehTG4.addChild(geom4.getShape(n));
		
		
								//Breite	//Höhe	//Dicke
        Shape3D box4 = new Box(0.13, 0.13, 0.036 ,4);
    	box4.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
    	TG4.addChild(box4);
        
        /// Farbe Würfel
        Appearance app4 = new Appearance();
        app4.setMaterial(new Material(new Color3f(0.5f,0f,0.5f),new Color3f(0f,0f,0f),new Color3f(1f,0f,0f),new Color3f(1f,1f,1f),100f));
        box4.setAppearance(app4);
        ColoringAttributes ca4 = new ColoringAttributes();
		ca4.setColor(0.6f, 0.3f, 0.0f);
		app4.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_WRITE);
		app4.setColoringAttributes(ca4);
		app4.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.NICEST,transparenz));
        
        // Bewegung Teil4
        Transform3D	yAxis4 = new Transform3D();
     	yAxis4.rotX(1.54f);
    															//duration
		Alpha animAlpha4 = new Alpha (-1,Alpha.INCREASING_ENABLE,0,0,9000,0,0,0,0,0); 
		KBKeyFrame[]	splineKeyFrames4 = new KBKeyFrame[2];
     	
     	Vector3f           pos_40  = new Vector3f( xTG,0.0f,0.1f);// Zahlenwerte sind verschoben! YWert ist vertauscht! 
     	Vector3f           pos_41  = new Vector3f( 0.0f, 0.0f, 0.0f);
	   	
	   	Point3f p4   = new Point3f (pos_40);         
		  float head4  = 0.0f;  // y-achse         
		  float pitch4 = 0.0f;  // z-achse FALSCH                         
		  float bank4  = 0.0f;  // x-achse                          
		  Point3f s4   = new Point3f(1.0f, 1.0f, 1.0f); 
		  splineKeyFrames4[0] = new KBKeyFrame(0.0f, 0, p4, head4, pitch4, bank4, s4, 0.0f, 0.0f, 0.0f); 
		
		  p4 = new Point3f (pos_41);
		  head4  = 0.0f;                              
		  pitch4 = 0f;                              
		  bank4  = 0f;                
		  splineKeyFrames4[1] = new KBKeyFrame(1.0f, 0, p4, head4, pitch4, bank4, s4, 0.0f, 0.0f, 0.0f); 

		KBRotPosScaleSplinePathInterpolator splineInterpolator4 = new KBRotPosScaleSplinePathInterpolator(animAlpha4, TG4,yAxis4, splineKeyFrames4); 
		splineInterpolator4.setSchedulingBounds(bounds);
	
		TransformGroup TG4Move = new TransformGroup();
		TG4Move.addChild(splineInterpolator4); 
	
        TG4Move.addChild(TG4);
        
        ///Auswahl5///////////////////////////////////
        Transform3D drehT3D5 = new Transform3D();
        drehT3D5.rotX(Math.PI/2);
        TransformGroup drehTG5 = new TransformGroup(drehT3D5);
       	
       	Transform3D scalTG5 = new Transform3D();
    	scalTG5.set(0.025f);
  		TransformGroup TG5Scal = new TransformGroup(scalTG5);
  		TG5Scal.addChild(drehTG5);
  		
  		Transform3D Trans_TG5 = new Transform3D();
     	Trans_TG5.setTranslation(new Vector3f(xTG,-0.3f,0.0f));
     	
     	TransformGroup TG5 = new TransformGroup(Trans_TG5);
     	TG5.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
     	TG5.addChild(TG5Scal);
       
        element_rot_5 geom5 = new element_rot_5();
        for (int n=0; n<geom5.getShapeCount(); n++)
		drehTG5.addChild(geom5.getShape(n));
        
        Shape3D box5 = new Box(0.13, 0.13, 0.036 ,5);
    	box5.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
    	TG5.addChild(box5);
        
        /// Farbe Würfel
        Appearance app5 = new Appearance();
        app5.setMaterial(new Material(new Color3f(0.5f,0f,0.5f),new Color3f(0f,0f,0f),new Color3f(1f,0f,0f),new Color3f(1f,1f,1f),100f));
        box5.setAppearance(app5);
        ColoringAttributes ca5 = new ColoringAttributes();
		ca5.setColor(0.6f, 0.3f, 0.0f);
		app5.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_WRITE);
		app5.setColoringAttributes(ca5);
		app5.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.NICEST,transparenz));
        
        // Bewegung Teil5
        Transform3D	yAxis5 = new Transform3D();
     	yAxis5.rotX(1.54f);
    															//duration
		Alpha animAlpha5 = new Alpha (-1,Alpha.INCREASING_ENABLE,0,0,9000,0,0,0,0,0); 
		KBKeyFrame[]	splineKeyFrames5 = new KBKeyFrame[2];
     	
     	Vector3f           pos_50  = new Vector3f( xTG,0.4f,0.5f);// Zahlenwerte sind verschoben! YWert ist vertauscht! 
     	Vector3f           pos_51  = new Vector3f( 0.0f, 0.0f, 0.0f);
	   	
	   	Point3f p5   = new Point3f (pos_50);         
		  float head5  = 0.0f;  // y-achse         
		  float pitch5 = 0.0f;  // z-achse FALSCH                         
		  float bank5  = 0.0f;  // x-achse                          
		  Point3f s5   = new Point3f(1.0f, 1.0f, 1.0f); 
		  splineKeyFrames5[0] = new KBKeyFrame(0.0f, 0, p5, head5, pitch5, bank5, s5, 0.0f, 0.0f, 0.0f); 
		
		  p5 = new Point3f (pos_51);
		  head5  = 0.0f;                              
		  pitch5 = 0f;                              
		  bank5  = 0f;                
		  splineKeyFrames5[1] = new KBKeyFrame(1.0f, 0, p5, head5, pitch5, bank5, s5, 0.0f, 0.0f, 0.0f); 

		KBRotPosScaleSplinePathInterpolator splineInterpolator5 = new KBRotPosScaleSplinePathInterpolator(animAlpha5, TG5,yAxis5, splineKeyFrames5); 
		splineInterpolator5.setSchedulingBounds(bounds);
	
		
		TransformGroup TG5Move = new TransformGroup();
		TG5Move.addChild(splineInterpolator5); 
     
       TG5Move.addChild(TG5);
        
        ///Wände///////////////////////////////////////////////////
        Shape3D wand1 = new Box(0.001, 1.4, 1.0 ,6);
    	wand1.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
    	Shape3D wand2 = new Box(0.001, 1.4, 1.0 ,7);
    	wand2.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
    	
    	
        Transform3D drehWand1 = new Transform3D();
        drehWand1.rotY(-0.12f);
    	TransformGroup TGdrehWand1 = new TransformGroup(drehWand1);
   		TGdrehWand1.addChild(wand1);
    	Transform3D Transwand1 = new Transform3D();
    	Transwand1.setTranslation(new Vector3f(0.3f,0.0f,0.0f));
    	TransformGroup TGTranswand1 = new TransformGroup(Transwand1);
    	TGTranswand1.addChild(TGdrehWand1);
    	
    	
    	Transform3D drehWand2 = new Transform3D();
        drehWand2.rotY(-0.333f);
    	TransformGroup TGdrehWand2 = new TransformGroup(drehWand2);
   		TGdrehWand2.addChild(wand2);
    	Transform3D Transwand2 = new Transform3D();
    	Transwand2.setTranslation(new Vector3f(0.98f,0.0f,0.0f));
    	TransformGroup TGTranswand2 = new TransformGroup(Transwand2);
    	TGTranswand2.addChild(TGdrehWand2);
        	
    
    	
    	TransformGroup waende = new TransformGroup();
    	waende.addChild(TGTranswand1);
    	waende.addChild(TGTranswand2);
		
		///Sound Backround
		TransformGroup Sound = new TransformGroup();
    	Sound.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		Sound.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
		myBackgroundSound bsound = new myBackgroundSound("file:./bgsound.wav",5.0f,true);
	//	Sound.addChild(bsound);
		///		
		///Kollisions Aufruf///
	
		CollisionDetector cd = new CollisionDetector(box1);
		BoundingSphere boundsCD = new BoundingSphere(new Point3d(0.0,0.0,0.0),1.0);
		cd.setSchedulingBounds(boundsCD);
		TG1.addChild(cd);
	
		CollisionDetector2 cd2 = new CollisionDetector2(box2);
		cd2.setSchedulingBounds(boundsCD);
		TG2.addChild(cd2);
		
		CollisionDetector3 cd3 = new CollisionDetector3(box3);
		cd3.setSchedulingBounds(boundsCD);
		TG3.addChild(cd3);
		
		CollisionDetector4 cd4 = new CollisionDetector4(box4);
		cd4.setSchedulingBounds(boundsCD);
		TG4.addChild(cd4);
		
		CollisionDetector5 cd5 = new CollisionDetector5(box5);
		cd5.setSchedulingBounds(boundsCD);
		TG5.addChild(cd5);
		
		CollisionDetector6 cd6 = new CollisionDetector6(wand1);
		cd6.setSchedulingBounds(boundsCD);
		waende.addChild(cd6);
		
		CollisionDetector7 cd7 = new CollisionDetector7(wand2);
		cd7.setSchedulingBounds(boundsCD);
		waende.addChild(cd7);
		
		
		///////////////////////////////////
		TG_Auswahl = new TransformGroup();
		TG_Auswahl.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		TG_Auswahl.addChild(TG1Move);
        TG_Auswahl.addChild(TG2Move);
        TG_Auswahl.addChild(TG3Move);
        TG_Auswahl.addChild(TG4Move);
        TG_Auswahl.addChild(TG5Move);
        
        
    	
    	TG_Auswahl.addChild(waende);
		obj_root.addChild(TG_Auswahl);
        obj_root.addChild(content);
        obj_root.addChild(sceneBG);
        obj_root.addChild(Sound);
        
        obj_root.setCapability(BranchGroup.ALLOW_DETACH);
		obj_root.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
		obj_root.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
        obj_root.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
         
       
		  
	 	return obj_root;
	}
	
		 


}
 

Illuvatar

Top Contributor
Na da wo du das ausliest is das ja auch noch net live. Mal abgesehen davon, dass das sinnlos ist, weil test ja immer bei (0,0,0) ist an der Stelle. Ich versteh noicht ganz, was du da machen willst ???:L
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Position eines Image verändern mithilfe eines Timers Spiele- und Multimedia-Programmierung 6
B BufferedImage Position Spiele- und Multimedia-Programmierung 8
coolian meine funktion um die höhe des terrains an bestimmter position in diesem fall spieler position zu bekommen giebt nur 0 zurück Spiele- und Multimedia-Programmierung 6
E Isometrische Tiles mit unterschiedlicher Größe an korrekter Position zeichnen Spiele- und Multimedia-Programmierung 1
BRoll AudioInputStream (Mp3) aktuelle Position Spiele- und Multimedia-Programmierung 0
A .jpg-Bild auf andere Position verschieben Spiele- und Multimedia-Programmierung 4
M [JAVA 3D] Position des Objektes verändern Spiele- und Multimedia-Programmierung 16
B Position der ViewingPlatform und Visueller Objekte setzen Spiele- und Multimedia-Programmierung 3
W "Kamera"-Position Spiele- und Multimedia-Programmierung 24
M Exakte Position auf Kugel mit Maus picken , Java3d Spiele- und Multimedia-Programmierung 14
T Maus-Cursor-Position manipulieren Spiele- und Multimedia-Programmierung 3
K Position im Raum bestimmen Spiele- und Multimedia-Programmierung 11
M Position der ViewingPlatform als Point3d-Objekt? Spiele- und Multimedia-Programmierung 12
G Wie kann ich die Kamera / View Position ausgeben? Spiele- und Multimedia-Programmierung 3
X Bild auf aktueller position drehen Spiele- und Multimedia-Programmierung 2
D mehrere Graphiken erstellen und ihre Position definieren Spiele- und Multimedia-Programmierung 4
N Seltsame Exception bei Code eines Spiele-Tutorials Spiele- und Multimedia-Programmierung 6
R Ideen für die Backend-Entwicklung eines Games gesucht Spiele- und Multimedia-Programmierung 8
A Programmieren eines Memorys mit Java (in Eclipse) Spiele- und Multimedia-Programmierung 5
E Programmierung eines 2.5D Point&Click Adventures ohne Spieleengine machbar? Spiele- und Multimedia-Programmierung 14
K Click innerhalb eines 45° gekippten Rechtecks Spiele- und Multimedia-Programmierung 9
J LibGdx_3D: Klamotten eines Charakters modifizieren Spiele- und Multimedia-Programmierung 2
K Erstellen eines Fotoalbums mit Java Spiele- und Multimedia-Programmierung 8
R Fehler beim Laden eines 2D-Bildes Spiele- und Multimedia-Programmierung 3
L OpenGL TransformationMatrix eines Flugzeugs Spiele- und Multimedia-Programmierung 2
M Programmierung eines "Fantasy Rollenspiels" Spiele- und Multimedia-Programmierung 5
E Laufanimation eines Sprites Spiele- und Multimedia-Programmierung 6
Finalspace Entwicklung eines Jump & Run Spiels Video-Tutorial Spiele- und Multimedia-Programmierung 12
T Hintergrundmusik eines Spiels mit Hilfe von JLayer Spiele- und Multimedia-Programmierung 12
M Cylinder anhand eines Vektors ausrichten (Java3d) Spiele- und Multimedia-Programmierung 0
M bewegen eines Objektes Spiele- und Multimedia-Programmierung 2
U Hilfe bei Implementierung eines PointSounds in Java3D Spiele- und Multimedia-Programmierung 1
gamebreiti Index eines Elements einer ArrayList abfragen Spiele- und Multimedia-Programmierung 1
X "Rebuffen" - Messen der Zeit eines Timers Spiele- und Multimedia-Programmierung 3
S Design eines Schachspiels Spiele- und Multimedia-Programmierung 3
S Mausklicks innerhalb eines JFrames/SWTBrowser ohne richtige Maus simulieren Spiele- und Multimedia-Programmierung 6
F Programmierung eines Bots Spiele- und Multimedia-Programmierung 23
A Wann ist ein Punkt inerhalb eines Polygons? Spiele- und Multimedia-Programmierung 2
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
R Drehen eines Bildes relativ zur Mauszeigerposition Spiele- und Multimedia-Programmierung 2
M Pattern zur Auswahl eines Objektes anhand vieler Kriterien Spiele- und Multimedia-Programmierung 2
H Skalierung eines Polygons ohne das es verschoben wird Spiele- und Multimedia-Programmierung 3
R Triangulation eines komplexen Polygons Spiele- und Multimedia-Programmierung 4
L Lwjgl Darstellung eines Kreises im Raum Spiele- und Multimedia-Programmierung 3
M Pixel eines BufferedImage bearbeiten (Performance) Spiele- und Multimedia-Programmierung 23
G Rotieren eines Objekts (2D) Spiele- und Multimedia-Programmierung 8
F nur Ausschnitt eines Image zeichnen Spiele- und Multimedia-Programmierung 9
S Umfang eines Polygons erzeugen Spiele- und Multimedia-Programmierung 1
D Highscoreliste eines Applets funktioniert online nicht Spiele- und Multimedia-Programmierung 4
W CannotRealizeException (jmf) beim abspielen eines liedes Spiele- und Multimedia-Programmierung 3
F Meine Aufgabe: Client-Server am Beispiel einer Implementation eines Tic-Tac-Toe Netzwerkspieles Spiele- und Multimedia-Programmierung 7
D Koordinaten eines 2D Sprites Spiele- und Multimedia-Programmierung 2
B Teile eines Bildes laden - BitBlk und drawImage Spiele- und Multimedia-Programmierung 3
S Interpolation eines Bildes Spiele- und Multimedia-Programmierung 6
S Problem beim laden eines Bildes in einer Methode Spiele- und Multimedia-Programmierung 14
N Bildposition innerhalb eines anderen Bildes ermitteln Spiele- und Multimedia-Programmierung 2
G rotation eines würfels Spiele- und Multimedia-Programmierung 9
G Bewegung eines Grafikobjektes Spiele- und Multimedia-Programmierung 7
A Programmieren eines Bruchrechners Spiele- und Multimedia-Programmierung 3
H Decke zeichnen mit Hilfe eines Polygons Spiele- und Multimedia-Programmierung 2
J Rotieren eines 2D Images endet in Java heap space Error Spiele- und Multimedia-Programmierung 15
W Affine Transformation, Rotieren eines Objekts Spiele- und Multimedia-Programmierung 2
S fließende/bewegende Striche eines Auswahlrechtecks Spiele- und Multimedia-Programmierung 9
A Bounds eines gedrehten Objekts berechnen Spiele- und Multimedia-Programmierung 30
T Erstellen eines ausdruckbaren Formulars Spiele- und Multimedia-Programmierung 5
T Umsetzung eines 2D Jump and Runs Spiele- und Multimedia-Programmierung 7
T Brightness eines Bildes [DRINGEND] Spiele- und Multimedia-Programmierung 2
S Java3D - mehrere Instanzen eines Geometrieobjektes erzeugen Spiele- und Multimedia-Programmierung 3
ARadauer Grauwerte eines jpg ermitteln Spiele- und Multimedia-Programmierung 4
A Anzeigen eines Grapfen Spiele- und Multimedia-Programmierung 13
R Die korrekte Breite/Höhe eines Bildes wird nicht erkannt. Spiele- und Multimedia-Programmierung 2
S Problem bzgl. Umsetzung eines Rollenspiel Spiele- und Multimedia-Programmierung 6
M Ausschneiden eines Bereichs / Avatar Spiele- und Multimedia-Programmierung 2
G Ermitteln eines Punktes in einer anderen TransformGroup Spiele- und Multimedia-Programmierung 2
M Frage eines Anfängers Spiele- und Multimedia-Programmierung 3
DEvent [2D] Farbe bestimmten Pixels eines Bildes ändern Spiele- und Multimedia-Programmierung 3
V Wie berechnet man das Bild eines Schwarzen Loches in Java? Spiele- und Multimedia-Programmierung 10
G Breite eines Strings Spiele- und Multimedia-Programmierung 2
S Text an einer Seite eines Cubes Spiele- und Multimedia-Programmierung 7
F Image eines bestimmten Bereichs eines JPanels erstellen Spiele- und Multimedia-Programmierung 4
N Grafik als Hintergrund eines Rechtecks verwenden? Spiele- und Multimedia-Programmierung 4
N Rundenstrategiespiel - Problem beim Drehen eines Bildes Spiele- und Multimedia-Programmierung 18
F Brauche Hilfe bei Bewegung eines Rechtecks [Applet] Spiele- und Multimedia-Programmierung 5
T Java2D Spiel, beim Hinzufügen eines Bildes ruckelt das ganze Spiele- und Multimedia-Programmierung 3
W Rotation eines Objektes Spiele- und Multimedia-Programmierung 2
M Zerschneiden eines Bildes mit Wellenlinien? Spiele- und Multimedia-Programmierung 2
S Simulation in der Art eines Schachbrett Spiele- und Multimedia-Programmierung 2
A 2-Achsen Rotation eines Würfels Spiele- und Multimedia-Programmierung 4
L nicht sichtbare Kanten eines Würfels Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben