[Java3D] Probleme bei Kollision

Maxim6394

Bekanntes Mitglied
ich hab jetzt ein gut funktionierendes bewegungssystem wo man sich auch umsehen kann, aber das mit der kollsion krieg ich nicht wirklich hin. ich hab da um den spieler eine boundingbox, die sich auch mit dem spieler die ganze zeit mit bewegt. da ist dann noch eine colorcube, wo eine kollision auch korrekt erkannt wird. alle 25ms wird ein timer durchlaufen der die rotation und die position des spielers festlegt. ich dachte ich speichere die spielerposition ganz am anfang der schleife in einer temporären variable, und immer wenn eine kollision erkannt wird setze ich den spieler auf diese temporäre position. das klappt aber nicht wirklich, er bleibt einfach auf der stelle sobald er mit dem objekt kollidiert.

Java:
java.util.TimerTask task=new java.util.TimerTask()
	{		
		Point3d tmpPlayerPos;
		
		public void run()
		{
		
			 tmpPlayerPos=new Point3d(player.position.getX(),player.position.getY(),player.position.getZ());			//hier wird die aktuelle spielerposition gespeichert.

			Transform3D rotY=new Transform3D();
			Transform3D rotX=new Transform3D();
			Transform3D rotZ=new Transform3D();
			Transform3D trans=new Transform3D();
			if(mouseEntered==true)
			{
		
			int x=(int)MouseInfo.getPointerInfo().getLocation().getX();
			int y=(int)MouseInfo.getPointerInfo().getLocation().getY();

			Transform3D tmp=new Transform3D();	view.getTransform(tmp);
			
			double diffX=-((x-mousePos.getX())/mouseSens);
			double diffY=-((y-mousePos.getY())/mouseSens);
					
			player.yRotation+=diffX;
			player.xRotation+=diffY;		
			
			rotY.rotY(Math.toRadians(player.yRotation));
			rotX.rotX(Math.toRadians(player.xRotation));
		
			rotY.mul(trans);
			rotY.mul(rotX);
			trans.mul(rotY);
			trans.setTranslation(new Vector3d(player.position.getX(),player.position.getY(),player.position.getZ()));
			
		
			view.setTransform(trans);
			
			mousePos.setX(x); mousePos.setY(y);

			if(mouseEntered==true)
			{
				robot.mouseMove(250, 250);
				mousePos.setX(250);mousePos.setY(250);
			}
		
		if(player.dz==1)
		{
			player.move(player.yRotation);
		}
		else if(player.dz==-1)
		{
			player.move(player.yRotation+180);
		}
		if(player.dx==1)
		{
			player.move(player.yRotation+90);
		}
		else if(player.dx==-1)
		{
			player.move(player.yRotation-90);
		}
			

		if(player.bounds.intersect(cube.getBounds()))
		{
			System.out.println(tmpPlayerPos+"|"+player.position);
			player.position=tmpPlayerPos; //hier sollte der spieler auf die position zurückgeworfen werden, er bleibt aber nur in der collisionszone stecken. bei einem bewegungsversuch werden für die spielerposition geringfügig andere werte ausgegeben als tmpPlayerPos
		}
		
		player.checkRotation();
		player.updateBounds();	
		
			
			}
	
	}
	};

Java:
	cubeTGTrans.setTranslation(new Vector3f(0,0,10));
		cube.setBoundsAutoCompute(false);
		cube.setBounds(new BoundingBox(new Point3d(-1,-1,9),new Point3d(1,1,11)));

also wie mach ich das? früher als ich das bei nem 2d spiel gemacht hab ging diese technik, dass die position einfach zurückgesetzt wird wenn es kollision gibt.

ich habs mit nem behavior versucht aber da wird die kollision gar nicht erst erkannt, egal ob ich die bounds vom spieler oder die von der colorcube benutze.
Java:
class collisionBehavior extends Behavior
	{

		Bounds boundingBox;
		WakeupCriterion criterion;
		
		public collisionBehavior(Bounds targetBounds)
		{
			
			
			setSchedulingBounds(bounds);
			this.boundingBox=targetBounds;
			criterion=new WakeupOnCollisionEntry(targetBounds);
			
		}
		
		public void initialize()
		{
			
			
			this.wakeupOn(criterion);
			System.out.println("initialized");
		}
		
		public void processStimulus(Enumeration e)
		{
			System.out.println("collision");
			
			this.wakeupOn(criterion);
		}
	}
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Was hast du denn die ganze Zeit mit diesen MouseInfos und TimerTasks? So macht man das nicht... eigentlich mit Behaviors (die finde ich aber teilweise auch etwas schwerfällig, deswegen) notfalls mit normalen MouseEvents....
 

Maxim6394

Bekanntes Mitglied
also das mit der kollisionserkennung funktioniert bei ganz einfachen körpern, aber ich muss irgendwie die geometrie des shapes nutzen und nicht die boundingbox. wie kann ich das machen? bei einem pickray wird auch der exakte punkt erkannt wo der strahl das objekt trifft, nicht nur die boundingbox.
ich hab eine boundingbox für den spieler, wo ich immer die intersect methode aufrufe um zu prüfen ob es mit einem objekt in der branchgroup kollidiert. dabei werden wohl leider immer nur die bounds genommen, nicht die geometrie. kann man das ändern?
 

HimBromBeere

Top Contributor
Empfehle dir auchm bereits vorhandene Bibliotheken zu nutzen. So eine 3D-Kollision mit 3D-Meshes schreibt man nicht mal so nebenbei... das sind sehr aufwendige Und v.a. rechenintesnive) Operationen, die Zeit beanspruchen, wenn man da nicht extrem viel Optimierungsenergie reinsteckt...
 

Maxim6394

Bekanntes Mitglied
jMonkeyEngine sieht ziemlich beeindruckend aus, aber ein neues projekt zu erstellen klappt nichtmal. es wird zwar erstellt, aber es kann nicht geöffnet werden. bei projekt name steht nur <unrecognized project; missing plug-in?> .
ich hab auch die org-netbeans-modules-java-j2seproject.jar runtergeladen und in den classpath gemacht, weil in der project.xml <type>org.netbeans.modules.java.j2seproject</type> steht. geht trotzdem nicht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Maxim6394 [Java3D] Probleme mit KeyFrame Animationen Spiele- und Multimedia-Programmierung 9
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
C Probleme mit Java3D (sun.awt.DrawingSurface) in Java 5 Spiele- und Multimedia-Programmierung 10
N Java3d in Eclipse einbinden Spiele- und Multimedia-Programmierung 4
Neumi5694 Java3D Viewer Beschriftung Spiele- und Multimedia-Programmierung 1
C Java3D Transformieren von obj. Datein Spiele- und Multimedia-Programmierung 0
M Cylinder anhand eines Vektors ausrichten (Java3d) Spiele- und Multimedia-Programmierung 0
Ruvok Java3D Tutorial gesucht Spiele- und Multimedia-Programmierung 5
U Hilfe bei Implementierung eines PointSounds in Java3D Spiele- und Multimedia-Programmierung 1
R Java3d ViewingPlatform erst Verschieben und dann RotationsInterpolator Spiele- und Multimedia-Programmierung 0
D Java3D - Blickfeld Spiele- und Multimedia-Programmierung 1
P Java3D Box Dimensionen und Positionierung Spiele- und Multimedia-Programmierung 1
E Java3D Objekt skalieren per JSlider/JButton Spiele- und Multimedia-Programmierung 10
S Java3D: Primitives zu einem Objekt kombinieren Spiele- und Multimedia-Programmierung 7
J Java3D - Textur laden geht nicht Spiele- und Multimedia-Programmierung 9
J Java3D - Farben vermischen sich Spiele- und Multimedia-Programmierung 7
T Java3D Rendering Problem Spiele- und Multimedia-Programmierung 7
S Java3D oder JMonkey? Spiele- und Multimedia-Programmierung 17
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
C java 3d ohne Java3d Spiele- und Multimedia-Programmierung 28
Maxim6394 [Java3D] lookAt Mausposition Spiele- und Multimedia-Programmierung 17
K Java3D als Applet ohne Installation von Java3d Spiele- und Multimedia-Programmierung 6
D Java3D Installation: package javax.media.j3d not found Spiele- und Multimedia-Programmierung 5
C Java3D Texture Mapping Spiele- und Multimedia-Programmierung 2
W Java3D: Kanten die hinter einem Objekt liegen werden gezeigt Spiele- und Multimedia-Programmierung 2
W Java3D: Farbe von Objekten stimmt nicht mit übergebenem RGB-Wert überein Spiele- und Multimedia-Programmierung 9
M Eigene Renderengine ohne Java3D,etc. Spiele- und Multimedia-Programmierung 19
C Java3D Sound spielt nur einen Sound ab. Spiele- und Multimedia-Programmierung 8
A JAVA3D TransformGroup <--> Group Problem Spiele- und Multimedia-Programmierung 3
M [Java3D] Animation von mehreren Objekten Spiele- und Multimedia-Programmierung 7
W Java3D: Eckkoordinaten einer Box herausfinden Spiele- und Multimedia-Programmierung 18
T Java3D: Objekte platzieren und entfernen? Spiele- und Multimedia-Programmierung 7
T Java3D: Nur die Kanten des Würfels rendern? Spiele- und Multimedia-Programmierung 4
W Java3D setBounds(BoundingBox) Spiele- und Multimedia-Programmierung 6
T [gelöst] Java3D: Unerwünschte Rotation um die 3.Achse vermeiden? Spiele- und Multimedia-Programmierung 3
Bastie JAVA3D - WRL Transform Spiele- und Multimedia-Programmierung 9
G Eclipse Problem mit Java3d Spiele- und Multimedia-Programmierung 3
T Java3D - Lichtquelle einbauen Spiele- und Multimedia-Programmierung 7
jemandzehage java3d parallel und perspective view Spiele- und Multimedia-Programmierung 5
H Cinema 4D in Java3D importieren Spiele- und Multimedia-Programmierung 2
1 [Java3D] komplexes Projekt? Spiele- und Multimedia-Programmierung 10
P .obj-Datei in Java3D laden: ParsingErrorException Spiele- und Multimedia-Programmierung 7
C Java3D Lichtquelle beim Beobachter Spiele- und Multimedia-Programmierung 2
C Java3D Interaktion während Animation Spiele- und Multimedia-Programmierung 3
aze Java3D: Flächen teilen Spiele- und Multimedia-Programmierung 15
P Java3D Textur verzerrt Spiele- und Multimedia-Programmierung 3
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
D [JAVA3D] Es werden 2 Fenster erzeugt und auf dem falschen gezeichnet Spiele- und Multimedia-Programmierung 3
aze Java3D: leere Räume füllen Spiele- und Multimedia-Programmierung 2
aze Java3d:Helligkeit von Shape3D ändern Spiele- und Multimedia-Programmierung 2
S Einschätzung zu Java3D-Einstieg Spiele- und Multimedia-Programmierung 3
F Programm mit Java3D unter Linux laufen lassen Spiele- und Multimedia-Programmierung 3
I Vergleich von Java3D und OpenGL Spiele- und Multimedia-Programmierung 17
W Waterslide mit Java3D Spiele- und Multimedia-Programmierung 11
M Java3D Picking - falsche Objekte werden gepickt Spiele- und Multimedia-Programmierung 3
M [Java3D] Rotieren der Scene NICHT des POV Spiele- und Multimedia-Programmierung 4
F Jogl oder Java3D ? Spiele- und Multimedia-Programmierung 20
K Java3D Abfängerfrage Spiele- und Multimedia-Programmierung 3
aze Java3D:Farbige Flächen verschwinden lassen(Transparenz- oder Colorinterpolator?)) Spiele- und Multimedia-Programmierung 5
C Java3D PositionInterpolator Spiele- und Multimedia-Programmierung 3
E [JAVA3D] Kamerasteuerung Spiele- und Multimedia-Programmierung 3
E [JAVA3D] Schattenstrich durch die Szene Spiele- und Multimedia-Programmierung 4
M Grundsätzliche Java3D Fragen Spiele- und Multimedia-Programmierung 2
C Java3D SceneGraohPath Spiele- und Multimedia-Programmierung 2
C Java3D Rotation um einen Punkt (y-achse) Spiele- und Multimedia-Programmierung 2
G Java3D plattformunabhängig bundeln Spiele- und Multimedia-Programmierung 3
TheKing Java3D-Shooter View Spiele- und Multimedia-Programmierung 2
A Java3D tutorial? Spiele- und Multimedia-Programmierung 3
R Java3D Kollisionserkennung und Schwerkraft Spiele- und Multimedia-Programmierung 17
M Java3D Objekte entfernen und hinzufügen Spiele- und Multimedia-Programmierung 10
J Java3d Schnelle Geschosse Spiele- und Multimedia-Programmierung 12
D Kann ich mit Java3D 2D Daten als 3D surfaceplot plotten? Spiele- und Multimedia-Programmierung 5
J Java3d setTextureTransform verändert J3DGraphics2D Spiele- und Multimedia-Programmierung 4
J Hilfe: Rotation X und Y Achse (Java3d) Spiele- und Multimedia-Programmierung 12
K Java3D: LineStripArray Spiele- und Multimedia-Programmierung 2
P Java3D - Zylinder genau wie Vektor ausrichten Spiele- und Multimedia-Programmierung 5
Developer_X Java3D Mensch Ärgere Dich nicht. Spiele- und Multimedia-Programmierung 10
C JAVA3D Rotation um einen bestimmten Punkt Spiele- und Multimedia-Programmierung 20
Developer_X Java3D-Ungeeignet für 3D Spiele wegen Heap Space=? Spiele- und Multimedia-Programmierung 23
Developer_X Java3D Canvas post Renderer und? Spiele- und Multimedia-Programmierung 5
A Java3D Sichtweite Spiele- und Multimedia-Programmierung 2
"Er" Kamera rotation in Java3D Spiele- und Multimedia-Programmierung 2
A Java3D: Behavior scheduling bounds Spiele- und Multimedia-Programmierung 3
Developer_X THE BALL (needs Java3D) Spiele- und Multimedia-Programmierung 34
Developer_X Java3D Game_(die erste) Spiele- und Multimedia-Programmierung 2
Developer_X Java3D und while schleifen Spiele- und Multimedia-Programmierung 4
Developer_X Collisionserkennung in Java3D Spiele- und Multimedia-Programmierung 3
Developer_X Java3D Node -> Obj Data Spiele- und Multimedia-Programmierung 2
Developer_X Figuren werden nicht angezeigt (Java3D) Spiele- und Multimedia-Programmierung 5
S PDFRenderer und Java3D Spiele- und Multimedia-Programmierung 2
Developer_X Java3D- der Mausklick auf Nodes Spiele- und Multimedia-Programmierung 3
Developer_X Java3D Point Sound Spiele- und Multimedia-Programmierung 71
Developer_X Lines in Java3D Spiele- und Multimedia-Programmierung 4
V Java3D: HUD erstellen Spiele- und Multimedia-Programmierung 2
V Java3D: scheinende Sonne Spiele- und Multimedia-Programmierung 4
V Java3D: Ringe für Saturn erstellen Spiele- und Multimedia-Programmierung 8
V Java3D: automatisches Bewegen der Kamera Spiele- und Multimedia-Programmierung 19
V Java3D: mehrere ViewingPlaforms in Sonnensystem Spiele- und Multimedia-Programmierung 8
Developer_X Thread in Java3D Spiele- und Multimedia-Programmierung 8
B Java3D .obj dateien Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben