2D-Bilder in Java3D

Status
Nicht offen für weitere Antworten.

just4fun

Mitglied
EDIT: Mein Problem wird hier gelöst -> http://www.java-forum.org/de/topic55714_2d-grafiken-auf-canvas3d.html



Hallo,
ich suche schon seit einiger Zeit nach einer Lösung zu meinem Problem. Ich möchte in meinem 3D-Spiel (bestehend aus einem Auto und einer Straße, das Auto kann sich drehen, vorwärts und rückwarts fahren. Das Auto befindet sich immer im Mittelpunkt, die Umgebung bewegt sich) ein 2D-Bild einbauen. Z.B. beim Drücken auf Escape kommt ein Spielmenü.

Ich habe den Code für diesen Zweck mal auf das minimum reduziert, damit er übersichtlicher ist. ;)
- Imports sind weggelassen
- Umgebung auf nur das Auto(Taxi) verkleinert
- einige Variablen und Methoden habe ich zur besseren Übersicht entfernt

Code:
public class TotalChaos extends JApplet implements KeyListener
{

	private double sleeptime = 50.0;
	private double perms = 1000/sleeptime;
   
	private TransformGroup objTrans;
    private Transform3D trans = new Transform3D();      

    private Transform3D scale = new Transform3D();              
	private Transform3D rotation = new Transform3D();
	private double rot_grade;
	private double x_move, z_move;
 
   //Unwichtige Variablen für diese Beispiel entfernt

	public TotalChaos() 
	{
	    setLayout(new BorderLayout());
	    GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
	    Canvas3D c = new Canvas3D(config);
	    add("Center", c);
		for(i_obj = 0; i_obj<max_obj; i_obj++)
		{
			obj[i_obj] = new object();
			objTran[i_obj] = new TransformGroup();
		}
		setobjAts();
	    c.addKeyListener(this);
	    addKeyListener(this);
	    // Create a simple scene and attach it to the virtual universe
	    BranchGroup scene = createSceneGraph();
	
	    SimpleUniverse u = new SimpleUniverse(c);
	    u.getViewingPlatform().setNominalViewingTransform();
	    u.addBranchGraph(scene);
	    	    
	    timer= new java.util.Timer();
	  	task= new TimerTask() { public void run() { mainTask(); } };
	    timer.scheduleAtFixedRate(task, (long)0, (long)sleeptime);		    
	}

	public BranchGroup createSceneGraph() 
	{
	// Create the root of the branch graph
	    BranchGroup objRoot = new BranchGroup();
	    objTrans = new TransformGroup();
	    objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
	    objRoot.addChild(objTrans)
	    // Create a simple shape leaf node, add it to the scene graph.
	   	ObjectFile file = new ObjectFile (ObjectFile.RESIZE);
		Scene scene = null;
		try 
		{
			scene = file.load("/taxi.obj");
                    	}
		catch (FileNotFoundException e) 
		{
			System.err.println(e);
			System.exit(1);
		}
		catch (ParsingErrorException e) 
		{
			System.err.println(e);
			System.exit(1);
		}
		catch (IncorrectFormatException e) 
		{
			System.err.println(e);
			System.exit(1);
		}
		
	    objTrans = new TransformGroup();
	    objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
	    Transform3D pos1 = new Transform3D();
	    scale.setScale(scaler);
	    pos1.setTranslation(new Vector3f(0.0f, -0.5f, 0.0f));
	    rotation.rotY(Math.PI / (2*-1));
	    rotation.mul(pos1);
	    rotation.mul(scale);
	    objTrans.addChild(scene.getSceneGroup());
	    objTrans.setTransform(rotation);
	    objRoot.addChild(objTrans);

                        //Licht und Hintergrund: rausgeschnitten, weil unwichtig
	
		return objRoot;
	}


//KEYEVENTS: Alle rausgeschnitten, weil unwichtig

	public void mainTask() 
	{	
                                        //Berechnung der Geschwindigkeit, Methode weggelassen		
		calculatespeed(speedup, speeddown);
		
		z_move = Math.cos(rot_grade)*speedinthis;
		x_move = Math.sin(rot_grade)*speedinthis;
		
                    //Bewegeung der Objekte(Straße etc): Rausgeschnitten
                                        //Falls das Spiel gerade gestartet wurde, Methode auch rausgeschnitten
  		if(firstrun)
			firstrun();
		
                                        //Drehung der Objekte	
		if(rotateright && speedinkmh > 0 || rotateleft && speedinkmh < 0 )
		{

			rotation.rotY(Math.PI/45);
			rot_grade = rot_grade + Math.PI/45;	
			transTotal.mul(rotation);	
		}
		if(rotateleft && speedinkmh > 0 || rotateright && speedinkmh < 0)
		{
			rotation.rotY(Math.PI/(45*-1));			
			transTotal.mul(rotation);
			rot_grade = rot_grade - Math.PI/45;
		}
                    }
	public static void main(String[] args) 
  	{
		TotalChaos TC = new TotalChaos();
	    TC.addKeyListener(TC);
	    MainFrame mf = new MainFrame(TC, 1000, 700);    
	}

Danke, danke, danke, danke, danke! Ich kanns kaum erwarten, die Antwort zu hören. ^^

Finn


PS/EDIT: Es ist ja nicht so, dass das einfach mit paint(Graphics g) ginge und dann in der Maintask immer repaint(); machen, sonst hätte ich es auch schon. =|
 

just4fun

Mitglied
Entschuldigung, dass ich doubleposte, aber da es nach einigen Tage noch immer keine Antwort gab ist das wohl okay.



Also, falls ihr nicht versteht, was ich meine, sagt bitte, was ihr nicht versteht. Danke nochmals.


Finn
 
A

AndiGast

Gast
Du willst also nur ein Bild auf die Zeichenfläche bringen?

Ich muss erstmal sagen das ich mich in Java 3D nicht so besonders auskenne, darum hier ein etwas umständlicher Vorschlag:

Wie wärs wenn du einfach in deinem Applet ein zweites Canvas (nicht 3D) an der gleichen Stelle einfügst und das Bild da reinzeichnest?
Da müsstest du natürlich mit setBounds die Positionen genau festlegen. (glaub ich)
Du machst dann während das Spiel läuft das normale Canvas unsichtbar und das Canvas3D sichtbar.
Und beim Wechsel ins Menü einfach das ganze umdrehen.

Wie gesagt, ist keine besonders tolle Idee, aber besser als garnichts.

mfg Andi
 

just4fun

Mitglied
Vielen dank für deine Antwort, muss ich mal ausprobieren. Ich fahr aber bald in Urlaub, ist recht stressig grade.

Finn
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Bilder werden unscharf angezeigt Spiele- und Multimedia-Programmierung 5
S Bilder Für Schachfiguren Spiele- und Multimedia-Programmierung 14
beatles Minesweeper - keine Bilder Spiele- und Multimedia-Programmierung 3
P [Spiel]Welche Bilder sind gleich Spiele- und Multimedia-Programmierung 2
O Bilder senden TV über DLNA? Spiele- und Multimedia-Programmierung 0
T Bilder Elegant darstellen... Spiele- und Multimedia-Programmierung 7
T Bilder einbinden, bzw. ändern Spiele- und Multimedia-Programmierung 5
M Bilder effizient speichern/serialisieren Spiele- und Multimedia-Programmierung 10
M Bilder in Java Spiele- und Multimedia-Programmierung 7
D Slick Lib - Bilder einlesen funktioniert nicht Spiele- und Multimedia-Programmierung 2
B Bilder in GUI ändern ohne repaint() Spiele- und Multimedia-Programmierung 6
T Spielautomat bilder vergleichen Spiele- und Multimedia-Programmierung 34
A Bilder werden nicht geladen Spiele- und Multimedia-Programmierung 6
S Datenbank gesucht für Bilder(gif-dateien) Spiele- und Multimedia-Programmierung 5
A Bilder (auf JPanels) auf komplette Zellengröße (GridBagLayout) skalieren Spiele- und Multimedia-Programmierung 2
I Bilder aus Quaxli's Tutorial Spiele- und Multimedia-Programmierung 3
A bilder performant und unhässlich skalliert darstellen? Spiele- und Multimedia-Programmierung 10
A 2 Bilder übereinander legen Spiele- und Multimedia-Programmierung 15
A Bilder(BMP) speichern Spiele- und Multimedia-Programmierung 2
S Bilder zuscheiden - Werte von php übergeben Spiele- und Multimedia-Programmierung 7
D Bilder besser interpolieren Spiele- und Multimedia-Programmierung 4
F Dynamische Bilder erzeugen? Spiele- und Multimedia-Programmierung 7
R Bilder aus animierter .gif extrahieren? Spiele- und Multimedia-Programmierung 4
C jpg.Bilder teilen/bearbeiten für Puzzle Spiele- und Multimedia-Programmierung 7
A Bilder bewegen Spiele- und Multimedia-Programmierung 2
M Bilder verzerren [Rechteck -> Trapez] Spiele- und Multimedia-Programmierung 4
K Bilder drehen Spiele- und Multimedia-Programmierung 5
H Bilder speichern 2 - Methode richten? Spiele- und Multimedia-Programmierung 2
H Bilder speichern Spiele- und Multimedia-Programmierung 3
A Bilder flackern Spiele- und Multimedia-Programmierung 5
T Gekachelte Bilder darstellen Spiele- und Multimedia-Programmierung 2
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] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Maxim6394 [Java3D] lookAt Mausposition Spiele- und Multimedia-Programmierung 17
Maxim6394 [Java3D] Probleme mit KeyFrame Animationen Spiele- und Multimedia-Programmierung 9
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
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
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

Ähnliche Java Themen

Neue Themen


Oben