Java3D Kollisionserkennung und Schwerkraft

RichardC

Mitglied
Guten Abend,
ich arbeite momentan an einem Java Projekt indem ich eine 3 Dimensionale Umgebung mit Java3D realsieren möchte.

Zum Einstieg:
Mittels selbst erstellter Behaviors die auf AWT Events reagieren bin ich schon in der Lage mich mit der Maus umzugucken und per WASD die Position zu ändern.

Dabei werden folgende Methoden aufgerufen:

Code:
//Von der Tastatur aufgerufen
  public void gehenVor(double vektor){
        Transform3D bewegung = new Transform3D();
        bewegung.setTranslation(new Vector3d(0,0,vektor));
        translation.mul(bewegung);
        simpleUniverse.getViewingPlatform().getViewPlatformTransform().setTransform(translation);
    }
public void gehenSeitlich(double vektor){
        Transform3D bewegung = new Transform3D();
        bewegung.setTranslation(new Vector3d(vektor,0,0));
        translation.mul(bewegung);
        simpleUniverse.getViewingPlatform().getViewPlatformTransform().setTransform(translation);	
    }

//von der maus aufgerufen
       public void schauX(double angel){
        Transform3D rotaX = new Transform3D();
        rotaX.rotX(((Math.PI/180)*angel)/6);
        translation.mul(rotaX);
        rotationX = rotationX + angel;
        simpleUniverse.getViewingPlatform().getViewPlatformTransform().setTransform(translation);
    }
    public void schauY(double angel){
        Transform3D rotaY = new Transform3D();
        rotaY.rotY(((Math.PI/180)*angel)/6);
        translation.mul(rotaY);
        rotationY = rotationY + angel;
        simpleUniverse.getViewingPlatform().getViewPlatformTransform().setTransform(translation);
    }



Nun habe ich 3 Fragen:

1. Ich verstehe noch nicht ganz wie das mit der ViewPlatform aussieht. Wenn ich eine translation auf die anwende. verschiebt sich dann die Kamera oder verschiebt sich dann das komplette universum um die kamera? Ich hab grad logische Kopfschmerzen.
Es geht mir darum ob meine Kamera konkrete Positionen hat oder ob die Kamera immer bei 0,0,0 steht. Aber irgentwie ist das doch auch etwas unerheblich? Ich bin da etwas verdreht! Bitte um klarstellung!

2. Wenn ich nach oben schaue bewege ich mich bei einem Druck auf W ebenfalls nach oben. Ich hab schon eine Idee wie man es lösen könnte "auf dem teppich" zu bleiben, aber wie realisiert man das "üblicherweise"?
Ich gehe hier von einem komplett ebenen Terrain aus.

3. Wie kann ich verhindern gegen eine Wand zu laufen?
Ich hab schon mit einem Behavior in dem ich den "WakeupOnViewPlatformEntry" nutze rumprobiert, aber das wollte irgentwie nicht.
Im prinzip hab ich mir gedacht man könnte ein Behavior schreiben, dass etwas früher auf eine Kollision reagiert sodass mann kurz vor der wand stehen bleibt. Wo fange ich da an? Ich brauche einen Anhaltspunkt was ich mir anschauen soll!



Eventuell ist auch netter Entwickler bereit mir ein wenig in icq oder msn Rede und Antwort zu stehen! Würde mich freuen
mfG Richard
 

Marco13

Top Contributor
Bin schon ein bißchen aus Java3D raus, aber versuch's mal...

1. Ich verstehe noch nicht ganz wie das mit der ViewPlatform aussieht. Wenn ich eine translation auf die anwende. verschiebt sich dann die Kamera oder verschiebt sich dann das komplette universum um die kamera? Ich hab grad logische Kopfschmerzen.
Es geht mir darum ob meine Kamera konkrete Positionen hat oder ob die Kamera immer bei 0,0,0 steht. Aber irgentwie ist das doch auch etwas unerheblich? Ich bin da etwas verdreht! Bitte um klarstellung!


Meines Wissens bewirkt eine Änderung an der ViewPlatform eine Bewegung der Kamera - und nicht der Welt. Unerheblich ist das nicht. Wenn man vor einem Objekt steht, und das Objekt bewegt sich nach LINKS, dann sieht das so aus, als ob die Kamera sich nach RECHTS bewegt (kennt man wenn man im Zug sitzt und losfährt, und man erstmal nicht erkennt ob man selbst in die eine, oder der Zug auf dem anderen Gleis in die andere Richtung fährt). Relevant wird das natürlich, wenn die Umgebung "fest" bleiben soll - und wenn man eine Spielfigur (Kamera) durch die Gegend steuert, bleibt die "Gegend" i.a. fest (ansnsten wären weitere Objektbewegungen in der Umgebung ziemlich kompliziert)


2. Wenn ich nach oben schaue bewege ich mich bei einem Druck auf W ebenfalls nach oben. Ich hab schon eine Idee wie man es lösen könnte "auf dem teppich" zu bleiben, aber wie realisiert man das "üblicherweise"?
Ich gehe hier von einem komplett ebenen Terrain aus.


Das hängt mit der Reihenfolge der Transformationen zusammen. Man kann (und sollte, der Einfachkeit halber) die Bewegung der Figur und die Drehung der Figur (Blickrichtung) in zwei verschiedenen Transformationen speichern. In deinem Fall gäbe es dann nicht nur die 'translation', sondern auch eine 'rotation', und die beiden werden multipliziert und das Ergebnis in die viewPlatformTransform geschrieben. Dabei sollte zum Berechnen der endgültigen Transformation ZUERST die Verschiebung (also das Rumlaufen in der Ebene) angewendet werden, und DANACH die Drehung der Blickrichtung. Änderungen an diesen Transformationen sollten dann jeweils von links an die aktuellen Transformationen dranmultipliziert werden. (Das machst du ja schon ... BTW: Es heißt 'angle' - 'angel' ist das Vieh mit den Flügeln und der Harfe... :D )

EDIT: Ach nee, du multiplizierst von rechts dran...

3. Wie kann ich verhindern gegen eine Wand zu laufen?
Ich hab schon mit einem Behavior in dem ich den "WakeupOnViewPlatformEntry" nutze rumprobiert, aber das wollte irgentwie nicht.
Im prinzip hab ich mir gedacht man könnte ein Behavior schreiben, dass etwas früher auf eine Kollision reagiert sodass mann kurz vor der wand stehen bleibt. Wo fange ich da an? Ich brauche einen Anhaltspunkt was ich mir anschauen soll!


Die Java3D-interne Kollisionserkennung habe ich nie wirklich benutzt, aber es gibt da sowas wie WakeupOnCollisionEntry (Java 3D API) und Beispiele dazu wie z.B. Java Tips - Collision Detection with Java3D - 3 ... kannst du dir ja mal anschauen...
 

RichardC

Mitglied
Danke für die Hilfe! Ich bin momentan dabei Problem Nummer 2 zu lösen.
Ich habe nun alles in 4 Translationen ausgelagert, welche bei jedem Änderungsvorgang neu zusammenmultipliziert werden!

Code:
 public void gehenVor(double vektor){
        bewegungVor = new Transform3D();
        wegZ = wegZ + vektor;
        bewegungVor.setTranslation(new Vector3d(0,0,wegZ));
    }
    public void gehenSeitlich(double vektor){
        bewegungSeitlich = new Transform3D();
        wegX = wegX + vektor;
        bewegungSeitlich.setTranslation(new Vector3d(wegX,0,0));
    }
    public void schauX(double angle){
        rotaX = new Transform3D();
        rotationX = rotationX + angle;
        rotaX.rotX(((Math.PI/180)*rotationX)/6);
    }
    public void schauY(double angle){
        rotaY = new Transform3D();
        rotationY = rotationY + angle;
        rotaY.rotY(((Math.PI/180)*rotationY)/6);
    }
    public void aktualisieren(){
        // System.out.println(""+rotationX+"  "+rotationY);
        finalTrans = new Transform3D();
        finalTrans.mul(bewegungVor);
        finalTrans.mul(bewegungSeitlich);
        finalTrans.mul(rotaY);
        finalTrans.mul(rotaX);
        
        simpleUniverse.getViewingPlatform().getViewPlatformTransform().setTransform(finalTrans);
    }

Meine Key und Mouse Events ändern mit den Methoden aus dem Quelltext die 4 Transformationen.
Die Methode aktualisieren() fügt sie nun zusammen! Zuerst die positionsänderung nach vorne, dann seitlich und dann die rotationen.

Im moment sieht es wiefolgt aus:
Ich kann in jeder position mit der Maus hin und her schauen so wie es sein soll.
Das laufen mit WASD ist allerdings noch fehlerhaft.

wenn ich nach vorne gehe gehe ich immer nur in eine Richtung!
Nehmen wir an ich schaue nach links mit der Maus.
Dann drücke ich die Taste W um nach vorne zu gehen.
Ich gehe seitlich nach rechts.

Das macht auch alles Sinn wie es im moment funktioniert. Nur wie bringe ich meine Figur nun dazu nach vorne zu gehen und zwar in die Richtung in die sie momentan schaut und nicht streng nach dem Vektor?

Danke schonmal für eure Hilfe!
 

RichardC

Mitglied
Okay nun ist etwas wirklich komisch. Mit oben schon gezeigtem Quelltext und folgender Reihenfolge der Transformationen kann ich mich in blickrichtung so wie es sein soll nach vorne, nach hinten, und seitlich bewegen.
Aber wenn ich nun die Position der Maus verändere dreht sich anstatt meiner Sicht der Würfel! ich kann den würfel drehen.
Mit W kann ich in blickrichtung auf den würfel zu und mit A kann ich mich seitlich aus dem Blickwinkel des Würfels rausbewegen. Jedoch beim bewegen der Maus dreht sich der Würfel.

Eigentlich hatte ich aber jetzt damit gerechnet, dass die Situtation wie die am Anfang ist!!! und zwar, dass ich optimal umherlaufen kann, dass ich aber nicht auf dem Teppich bleibe!!!
Was ist das los???

Java:
finalTrans.mul(rotaY);
finalTrans.mul(rotaX);
finalTrans.mul(bewegungVor);
finalTrans.mul(bewegungSeitlich);
 

Marco13

Top Contributor
OK... wenn ich das jetzt richtig verstehe, sollte man mit WASD immer in bezug auf die Blickrichtung laufen (bzw. seitlich 'strafen') - aber das hoch/runtersehen soll dabei nicht berücksichtigt werden...? Du redest jetzt von einem Würfel... Durch Ändern der ViewPlatform kann sich der Würfel nicht bewegen... aber es kann so aussehen, als ob ;) Ein KSKB wäre nicht schlecht...
 

RichardC

Mitglied
Ja ich denke auch, dass es so aussehen könnte als ob man sich um den würfel dreht, aber dies in wirklichkeit nicht stimmt!
Aber wieso ist das so?
Ich hab mal meine Hand zur Hilfe genommen. Erst bewegung seitlich, dann bewegung vor, dann nach links schauen, dann nach unten schauen.
Meine hand bewegt sich genau richtig!
Aber was stimmt da nicht?

Was ist ein KSKB?

Ich möchte eigentlich nur eine Welt erschaffen in der man wie in einem First Person Shooter rumlaufen kann.
Sprich:
-Sich mit der Maus umschauen
>Mausbewegung nach oben -> nach oben schauen
>Mausbewegung nach unten -> nach unten schauen
>Mausbewegung nach links -> nach links schauen
>Mausbewegung nach rechts -> nach rechts schauen
-Mit den Tasten WASD navigieren
>W -> Nach vorne gehen
>A -> Seitlich nach links gehen
>S -> Zurück gehen
>D -> Seitlich nach rechts gehen

Wenn man die Maus nach links schiebt ändert sich das "Vorne" und auch die Bewegungsrichtung. Wenn man sie Maus nach oben schiebt bleibt die richtung gleich! Die Spielfigut soll nicht abheben!
Alle Tasten W,A,S und D agieren gleich.
Wenn man sich nach links dreht ändert sich auch die Richtung in die man seitlich geht wenn man a drückt.


Eigentlich einfach nur eine klassische "First Person Shooter" bzw. "Ego Shooter" Steuerung
 

RichardC

Mitglied
Oh wahnsinns trick
Kein Problem! Kommt sofort!

Im Anhang befindet sich das was ich im moment habe!
Das Programm wurde mit BlueJ erstellt!

Zur Erklärung:

main.java ist der Anfang! Dort befindet sich auch die Main Methode!
windowOutput.java ist der Teil den man sich anschauen sollte! Dort finden die Transformationen statt!

szene.java verwaltet den Szenegraphen
und alles mit der Endung Behavior sind die Behaviors, welche auf Tastatur und Mauseingaben antworten.

Fred ist ein Thread der alle paar Millisekunden prüft ob eine Taste aktiv ist(Das ist für eine flüssige Bewegung notwendig)



Viel Spaß damit!


Mir ist übrigens noch aufgefallen wenn man die Maus im Kreis bewegt dreht sich der Würfel. Das ist auch garnicht korrekt


Bei fragen zum Quelltext bitte noch einmal posten
 

Marco13

Top Contributor
Ja, hab' mal kurz geschaut... Das mit der Reihenfolge der Multiplikationen ist schon wichtig. Und das Trennen der Rotation um X und um Y auch... Hab' mal schnell was gemacht, was zumindest einem First-Person-Movement nahe kommt:
Java:
import javax.swing.JFrame;
import java.applet.*;
import java.awt.*;
import javax.media.j3d.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import javax.vecmath.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.loaders.objectfile.ObjectFile;
import com.sun.j3d.loaders.ParsingErrorException;
import com.sun.j3d.loaders.Scene;
import java.io.*;
import com.sun.j3d.utils.behaviors.mouse.*;

public class WindowOutput extends JFrame{
    SimpleUniverse simpleUniverse;
    Szene szene;

    Vector3f translation = new Vector3f(0,0,5);
    Transform3D rotationY = new Transform3D();
    Transform3D rotationX = new Transform3D();


    public WindowOutput(Szene szenex) {
        super("Toll");
        szene = szenex;
        setLayout(new BorderLayout());
        setSize(1000,800);

        GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
        Canvas3D canvas3D = new Canvas3D(config);
        add("Center", canvas3D);

        simpleUniverse = new SimpleUniverse(canvas3D);

        setVisible(true);
    }

    public void startSzene(){
        simpleUniverse.addBranchGraph(szene.getTheScene());
    }

    //Von der Tastatur aufgerufen
    public void gehenVor(double vektor)
    {
        Vector3f delta = new Vector3f(0,0,(float)vektor);
        rotationY.transform(delta);
        translation.add(delta);
        aktualisieren();
    }
    public void gehenSeitlich(double vektor){
        Vector3f delta = new Vector3f((float)vektor,0,0);
        rotationY.transform(delta);
        translation.add(delta);
        aktualisieren();
    }

    //von der maus aufgerufen
    public void schauX(double angel){
        Transform3D rotaX = new Transform3D();
        rotaX.rotX(((Math.PI/180)*angel)/6);
        rotationX.mul(rotaX, rotationX);
        aktualisieren();
    }
    public void schauY(double angel){
        Transform3D rotaY = new Transform3D();
        rotaY.rotY(((Math.PI/180)*angel)/6);
        rotationY.mul(rotaY, rotationY);
        aktualisieren();
    }
    public void aktualisieren(){
        System.out.println("Rotation\n"+rotationX+"\n"+rotationY);
        System.out.println("Weg      "+translation);
        Transform3D finalTrans = new Transform3D();
        finalTrans.setTranslation(translation);
        finalTrans.mul(rotationX);
        finalTrans.mul(rotationY);

        simpleUniverse.getViewingPlatform().getViewPlatformTransform().setTransform(finalTrans);
    }
}


Die wichtigsten Änderungen:
- Die ganzen überflüssigen Fields rausgeworfen
- Rotation nach X und Y getrennt
- Mutliplikationsreihenfolge bei der Rotation korrigiert
- Translation bezieht sich immer auf die Blickrichtung, d.h. wenn man nach VORNE geht, dann meint man damit das VORNE, das durch die aktuelle Rotation um die Y-Achse bestimmt ist - also wird der bewegungsvektor entsprechend rotiert.

Das ist natürlich noch nicht ganz das gelbe vom Ei, aber... kannst ja mal weiterschauen...
 

RichardC

Mitglied
Ja das ist das Problem bei dem ich schon hing.

Wenn du jetzt einmal um den würfel drumherum läufst, ihn von der Seite anschaust, und mit der Maus nach oben und nach unten schaust.
dann bewegt sich der würfel nach oben und unten. Jedoch ist eigentlich einfach nur ein "nach oben und unten" schauen erwünscht.
verstehst du was ich meine?
Wie kann man das lösen hmm...
 

Marco13

Top Contributor
Hämja... der Würfel bewegt sich nicht. Nie. Egal, was du machst. Vielleicht kommt man dem gewünschten Verhalten näher, wenn man die Zeilen
finalTrans.mul(rotationX);
finalTrans.mul(rotationY);
vertauscht zu
finalTrans.mul(rotationY);
finalTrans.mul(rotationX);

Ansonsten stößt man, wenn man die Maus nicht irgendwie in die Mitte des Bildschirms zwingt, mit dieser Steuerung sowieso schnell an Grenzen - nämlich genau die Grenzen des Fensters :D
 

RichardC

Mitglied
Marco mein Held!
Es funktioniert! Probleme 1 und 2 sind gelöst^^

Ich versuche mich an Problem Nummer 3 noch einmal selber!

Ich bin dir unendlich dankbar! Du hast mir meine Facharbeit gerettet!
Du bist ein echter Samariter^^


Bitte den Thread noch nicht schliessen! Ich meld mich noch einmal über meinen Fortschritt.
Im moment freu ich mich auf jedenfall schonmal wie ein Keks^^
 
Zuletzt bearbeitet:

RichardC

Mitglied
Okay
Problem 3 habe ich nun zurückgestellt!
Und ein anderes Problem ist aufgetreten
Jenes Problem bezeichne ich nun als Problem 2b

Wenn sich die Maus aus dem Fenster bewegt hört die bewegung der Blickrichtung auf!
Das schränkt selbstverständlich die Bewegung ein.

Die Lösung wäre den Mauszeiger an einer Position festzuhalten sodass sich man, wie in einem Ego Shooter, unendlich nach rechts und links sehen kann!

Google hat mir gesagt ich soll dazu die Robot Klasse zu verwenden.
Gesagt getan!

Das Problem im moment ist jedoch, dass sich die Blickrichtung nicht bewegt.

Ich bin zu dem Schluss gekommen, dass bei der ausführung von "zen.mouseMove(200,200);" ebenfalls ein MouseEvent erzeugt wird!
Sprich:
Ich bewege die Maus 10 Pixel nach rechts und wenn ich die Maus zurück bewege mit mouseMove() wird eine Event erzeugt, welches automatisch die Maus wieder -10 Pixel nach links bewegt.
So wackelt das Bild nur ein wenig!

Ich habe nun versucht(siehe code) mit dem drücken der Maus ein MouseDragged event zu erzeugen, dass von der Behavior nicht erkannt wird. sodass die Rückbewegung unwirksam wird.

Wie kann ich nun die Maus festhalten ohne dabei ein Mouse Event zu erzeugen?

Ich arbeite an dem Problem!
Aber wenn jemand im Forum eine Lösung parat hat nur zu^^.
Bis später!

Folgende Implementierung:
Java:
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.event.*;
import java.util.Enumeration;
import  java.awt.Robot;

public class MouseMovedBehavior extends Behavior {
    private TransformGroup targetTG;
    private Transform3D rotation = new Transform3D();
    WindowOutput windowOutput;
        Robot zen;
    int posX=0,posY=0;   
    boolean firstTime = true;
    boolean stop = false;
    
    MouseMovedBehavior(TransformGroup targetTG, WindowOutput windowOutputx) {
        this.targetTG = targetTG;
        windowOutput = windowOutputx;
    }
    
    public void initialize() {
        this.wakeupOn(new WakeupOnAWTEvent(MouseEvent.MOUSE_MOVED));
        try{
            zen = new Robot();
          
        }catch(Exception e){}
    }
    
    public void processStimulus(Enumeration criteria) {
        MouseEvent event = (MouseEvent) ((WakeupOnAWTEvent) criteria.nextElement()).getAWTEvent()[0];
        if(!firstTime){

            windowOutput.schauX(-(event.getY()-posY));
            windowOutput.schauY(-(event.getX()-posX));
            System.out.println(""+(-(event.getX()-posX))+", "+(-(event.getY()-posY)));
            zen.mousePress(InputEvent.BUTTON1_MASK);
            zen.mouseMove(200,200);
            zen.mouseRelease(InputEvent.BUTTON1_MASK) ;
        }else{
            zen.mousePress(InputEvent.BUTTON1_MASK);
            zen.mouseMove(200,200);
            zen.mouseRelease(InputEvent.BUTTON1_MASK) ;
            posX=event.getX();
            posY=event.getY();
            firstTime = false;
        }
        this.wakeupOn(new WakeupOnAWTEvent(MouseEvent.MOUSE_MOVED));
    }
}
 

RichardC

Mitglied
Hi Leute^^ Ich hab Problem 3 gelöst!

Ich habe ein stink normales Behavior programmiert, welches anschlägt wenn eine Kollision stattfindet.

Als ich die View Platform benutzt habe um zu kollidieren konnte ich bei einer Kollision schon durch das Objekt durchgucken! Das war natürlich nicht Sinn der Sache.

Jetzt kommt mein Knaller :D
damit die Kollision früher stattfindet hab ich folgendes gemacht:
Ich habe eine Box erstellt, welche die translation der View platform benutzt^^
Somit ist die Box immer um mich rum!
Da die Dreiecke aus denen die Box erstellt ist auf der rückseite Transparent ist sieht der Spieler nichts von der Box die einen umgiebt.

Nun hab ich das Collision event so gestellt, dass es auf die Box reagiert.

Geil oder? Ich kann die größe der Box variieren und hab in jede Himmelsrichtung Kollisionserkennung^^
Lob mich mal wer^^


Nun bitte ich nur noch Hilfe bei Problem 2b^^
Das oben beschriebene Problem mit der Maus
 

Marco13

Top Contributor
Ja, tricky :D Das mit der Maus kann ich mir in irgendeiner Mittagspause nochmal ansehen... Könnte ein bißchen frickelig werden, weil man da mit den Threads ein bißchen aufpassen muss, aber ... mal sehen...
 

Marco13

Top Contributor
Hab' mal geguckt - das mit dem "firstTime" ist noch ziemlich hakelig, aber kannst ja mal sehen, wie man das noch verbessern kann
Java:
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.event.*;
import java.util.Enumeration;
import java.awt.Robot;
import javax.swing.*;

public class MouseMovedBehavior extends Behavior {
    private TransformGroup targetTG;
    private Transform3D rotation = new Transform3D();
    WindowOutput windowOutput;
        Robot zen;
    int posX=0,posY=0;
    boolean firstTime = true;
    boolean stop = false;

    MouseMovedBehavior(TransformGroup targetTG, WindowOutput windowOutputx) {
        this.targetTG = targetTG;
        windowOutput = windowOutputx;
    }

    public void initialize() {
        this.wakeupOn(new WakeupOnAWTEvent(MouseEvent.MOUSE_MOVED));
        try{
            zen = new Robot();

        }catch(Exception e){}
    }

    public void processStimulus(Enumeration criteria)
    {
        Object object = criteria.nextElement();
        WakeupOnAWTEvent w = (WakeupOnAWTEvent)object;
        AWTEvent ev = w.getAWTEvent()[0];
        MouseEvent event = (MouseEvent)ev;

        if(firstTime)
        {
            repositionMouse(event);
            firstTime = false;
        }
        else
        {
            windowOutput.schauX(-(event.getY()-posY)/10.0f);
            windowOutput.schauY(-(event.getX()-posX)/10.0f);
            repositionMouse(event);
        }
        this.wakeupOn(new WakeupOnAWTEvent(MouseEvent.MOUSE_MOVED));
    }


    private void repositionMouse(MouseEvent event)
    {
        int cx = event.getComponent().getWidth()/2;
        int cy = event.getComponent().getHeight()/2;
        Point p = new Point(cx,cy);
        SwingUtilities.convertPointToScreen(p, event.getComponent());
        zen.mousePress(InputEvent.BUTTON1_MASK);
        zen.mouseMove(p.x, p.y);
        zen.mouseRelease(InputEvent.BUTTON1_MASK);
        posX = cx;
        posY = cy;
    }

}
 

RichardC

Mitglied
Ernsthaft? wie machst du das?

Bei mir hat das künstliche MouseDragged nicht geklappt^^

Danke Danke Danke!

Probleme 1-3 sind somit inklusive 2b erledigt^^
Ich bitte um offenlassen des Threads bis das Projekt über die Runden ist! Ich melde mich auf jedenfall nochmal!

Und ich bitte jeden die postings von marco mit danke zu versehen^^
Wenn ich mal was für dich tun kann sag bescheid
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
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
Developer_X Java3D's next TopModel Spiele- und Multimedia-Programmierung 16

Ähnliche Java Themen

Neue Themen


Oben