java 3d Steuerung (mit KSKB)

darX

Mitglied
Hallo,

wusste leider nicht wie man hier Beiträge editieren kann, musste daher einen neuen Thread aufmachen. Sorry für den Spam.

Ich hatte ja ein Problem mit der Third-Person Steuerung, die nicht richtig klappte, wenn man sich nach oben oder nach unten bewegen wollte.

Habe anbei ein KSKB angefügt. Man kann sich momentan nur mit Mausrad nach oben und unten bewegen. Ansonsten einfach in der Third-Person Klasse die auskommentierten Aufrufe wieder aktivieren. Dann sollte es auch mit der normalen Mausbewegung klappen.

Gruß,
darX
 

Anhänge

  • Beispiel.zip
    10,4 KB · Aufrufe: 15
Zuletzt bearbeitet:

Marco13

Top Contributor
Meine "aktivere" Java3D-Zeit ist schon eine Weile her, aber... Allgemein: Ein Transform3D ist ein ziemlich eng mit dem Szenegraphen verdrahtetes Objekt. Es erfüllt eigentlich fast die gleiche Funktion wie eine Matrix4f/d, ist aber an manchen Stellen etwas "schwergewichtiger" und weniger effizient, weil der Typ der Transformation immer wieder berechnet wird (die "classification" aus der JavaDoc). Wenn es wirklich nur darum geht, einen Zustand zu speichern und ein bißchen rumzurechnen, ist Matrix4f/d eigentlich meistens ausreichend. Die läßt sich ähnlich verwenden, der wichtigste Unterschied ist, dass man nach dem Erstellen "setIdentity" aufrufen muss.

Zum eigentlichen Problem: Ich glaube zwar, zu erahnen, was mit der Trennung von x- und y-Rotation erreicht werden sollte, aber habe es nicht vollständig im mathematischen Sinn nachvollzogen. Das Problem bei so einer Trennung nach Rotationen um X/Y/Z ist, dass man immer irgendeine Reihenfolge vorgibt (das ganze hat sogar einen Namen: Gimbal lock - Wikipedia, the free encyclopedia - aber ich glaube, das ist nicht direkt und nicht genau das, was dein Problem verursacht hat, sondern nur etwas ähnliches - also, vielleicht hätte man das gewünschte Verhalten auch mit Beibehaltung der getrennten X/Y-Rotation durch trickreiches ändern irgendwelcher Reihenfolgen erreichen können, aber... eigentlich ist das nicht notwendig). Das eigentlich wichtige ist in diesem Fall nur, dass man Translation und Rotation getrennt speichert (das hattest du ja auch schon). Die Rotation kann man eigentlich in einer Matrix zusammenfassen (theoretisch reicht ein Quaternion, aber irgendwann muss man das auch wieder zu einer Matrix machen...).

Hab' mal gebastelt, und dabei auch die Transform3Ds durch Matrix ersetzt (und ein paar "feingranulare" Objekterzeugungen vermieden... ist vielleicht nicht unbedingt notwendig, aber Gewohnheit...): Die Rotationen werden einfach alle von rechts an die "aktuelle" Rotation ranmultipliziert. Die Translation wird getrennt davon behandelt (und Bewegungen natürlich mit der "aktuellen" Rotation transformiert). Am Ende wird das ganze erst zur "Objekt-Transformation" zusammengebaut, und danach noch die Kamera hinter das Objekt gesetzt.

Java:
import java.awt.AWTEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.util.Enumeration;

import javax.media.j3d.Behavior;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.WakeupCondition;
import javax.media.j3d.WakeupCriterion;
import javax.media.j3d.WakeupOnAWTEvent;
import javax.media.j3d.WakeupOr;
import javax.vecmath.*;

import com.sun.j3d.utils.universe.SimpleUniverse;

public class ThirdPersonControl extends Behavior
{
    private int forwardKey = KeyEvent.VK_W;
    private int backwardKey = KeyEvent.VK_S;
    private int leftKey = KeyEvent.VK_A;
    private int rightKey = KeyEvent.VK_D;

    private int forwardKeyA = KeyEvent.VK_UP;
    private int backwardKeyA = KeyEvent.VK_DOWN;
    private int leftKeyA = KeyEvent.VK_LEFT;
    private int rightKeyA = KeyEvent.VK_RIGHT;

    private TransformGroup testObject;

    private Matrix4d tempMatrix = new Matrix4d();
    private Matrix4d currentRotation = new Matrix4d();
    private Vector3d tempVector = new Vector3d();
    private Vector3d currentTranslation = new Vector3d();
    private Transform3D objectTrans = new Transform3D();
    private Transform3D cameraTrans = new Transform3D();

    //private Transform3D rotationX = new Transform3D();
    private double turnRight = -0.05;
    private double turnLeft = 0.05;
    double lookingUp;
    private double lookUp = 0.05;
    private double lookDown = -0.05;
    private float moveForward = -0.2f;
    private float moveBackward = 0.2f;
    private WakeupCondition keyPress, mouseMove, mouseWheel;
    private WakeupOr criterion;
    private SimpleUniverse sU;
    private int posX=0,posY=0;
    private boolean firsttime = true;

    public ThirdPersonControl(TransformGroup transform, SimpleUniverse sU)
    {
        this.sU = sU;
        this.testObject = transform;
        keyPress = new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED);
        mouseMove = new WakeupOnAWTEvent(MouseEvent.MOUSE_MOVED);
        mouseWheel = new WakeupOnAWTEvent(MouseWheelEvent.MOUSE_WHEEL);

        currentRotation.setIdentity();
    }

    @Override
    public void initialize()
    {
        criterion = new WakeupOr(new WakeupCriterion[]{
                (WakeupCriterion) keyPress,
                (WakeupCriterion) mouseMove,
                (WakeupCriterion) mouseWheel });
        this.wakeupOn(criterion);
    }

    @SuppressWarnings("rawtypes")
    @Override
    public void processStimulus(Enumeration criteria)
    {
        WakeupCriterion wakeup;
        AWTEvent[] event;

        while (criteria.hasMoreElements())
        {
          wakeup = (WakeupCriterion) criteria.nextElement();

          if( wakeup instanceof WakeupOnAWTEvent )
          {
            event = ((WakeupOnAWTEvent)wakeup).getAWTEvent();

            for( int i = 0; i < event.length; i++ )
            {
              if(event[i].getID() == KeyEvent.KEY_PRESSED)
              {
                  processKeyEvent((KeyEvent)event[i]);
              }
              else if (event[i].getID() == MouseEvent.MOUSE_MOVED)
              {
                  processMouseEvent((MouseEvent)event[i]);
              }
              else if (event[i].getID() == MouseWheelEvent.MOUSE_WHEEL)
              {
                  processMouseWheelEvent((MouseWheelEvent)event[i]);
              }
            }
          }
        }
        this.wakeupOn(criterion);
    }

    //Mouse Wheel
    private void processMouseWheelEvent(MouseWheelEvent mouseEvent)
    {

        if (mouseEvent.getWheelRotation() < 0)
        {
            lookUp();
        }
        else
        {
            lookDown();
        }
    }

    //Mouse Wheel
    private void processMouseEvent(MouseEvent event)
    {
        if(!firsttime)
        {
//          lookY((-(event.getX()-posX)));
//          lookX(-(event.getY()-posY));

            posX= event.getX();
            posY= event.getY();
        }
        else
        {
            posX= event.getX();
            posY= event.getY();
            firsttime = false;
        }
    }

    //WASD UND PFEILTASTEN
    private void processKeyEvent(KeyEvent eventKey)
    {
        int keyCode = eventKey.getKeyCode();
        standardMove(keyCode);
    }

    private void standardMove(int keycode)
    {
        if(keycode == forwardKey || keycode == forwardKeyA)
        {
            moveForward();
        }

        else if(keycode == backwardKey || keycode == backwardKeyA)
        {
            moveBackward();
        }

        else if(keycode == leftKey || keycode == leftKeyA)
        {
            turnLeft();
        }

        else if(keycode == rightKey || keycode == rightKeyA)
        {
            turnRight();
        }
    }

    private void moveForward()
    {
        tempVector.set(0.0f,0.0f,moveForward);
        currentRotation.transform(tempVector);
        currentTranslation.add(tempVector);
        updateAll();
    }

    private void moveBackward()
    {
        tempVector.set(0.0f,0.0f,moveBackward);
        currentRotation.transform(tempVector);
        currentTranslation.add(tempVector);
        updateAll();
    }

    private void turnLeft()
    {
        tempMatrix.setIdentity();
        tempMatrix.rotY(turnLeft);
        currentRotation.mul(tempMatrix);
        updateAll();
    }

    private void turnRight()
    {
        tempMatrix.setIdentity();
        tempMatrix.rotY(turnRight);
        currentRotation.mul(tempMatrix);
        updateAll();
    }

    //mouseWheel
    private void lookUp()
    {
        tempMatrix.setIdentity();
        tempMatrix.rotX(lookUp);
        currentRotation.mul(tempMatrix);
        updateAll();
    }

    //mouseWheel
    private void lookDown()
    {
        tempMatrix.setIdentity();
        tempMatrix.rotX(lookDown);
        currentRotation.mul(tempMatrix);
        updateAll();
    }



    private void updateAll()
    {
        tempMatrix.setIdentity();
        tempMatrix.setTranslation(currentTranslation);
        tempMatrix.mul(currentRotation);
        objectTrans.set(tempMatrix);
        testObject.setTransform(objectTrans);

        updateCamera();
    }

    //update the camera
    private void updateCamera()
    {
        cameraTrans.setIdentity();
        cameraTrans.setTranslation(new Vector3f(0.0f, 2.0f, 8.1f));
        cameraTrans.mul(objectTrans, cameraTrans);

        sU.getViewingPlatform().getViewPlatformTransform().setTransform(cameraTrans);
    }
}
 

darX

Mitglied
Hallo, ich bins mal wieder. Die Steuerung und so klappt jetzt pefekt, allerdings hätte ich noch eine klitzekleine Sache, die mich noch stört. Und zwar bewegt sich das Objekt ja jetzt wie gewollt in alle Richtung, jedoch soll er, wenn er gerade nach oben guckt, und sich dann dreht, die Blickrichtung nach oben behalten. Schwer sowas mit Worten zu erklären, darum hier ne "anschauliche" Skizze^^

Die linke Abbbildung zeigt wie es momentan ist. Die rechte zeigt wie es sein soll. Beim drehen soll der momentane Winkel den das Objekt gerade hat gleich bleiben. Ich habe daran gedacht für einmal für die X-Rotation und einmal für die Y-Rotation je eine zusätzliche Transform3D zu erzeugen, allerdings kriege ich das irgendwie nicht gebacken es richtig einzubauen.

Gruß,
darX
 

Anhänge

  • beispiel.jpg
    beispiel.jpg
    13,4 KB · Aufrufe: 38

Marco13

Top Contributor
Meinst du das, was rauskommt, wenn man
Java:
    private void turnLeft()
    {
        tempMatrix.setIdentity();
        tempMatrix.rotY(turnLeft);
        currentRotation.mul(tempMatrix, currentRotation); // <--- hier
        updateAll();
    }

    private void turnRight()
    {
        tempMatrix.setIdentity();
        tempMatrix.rotY(turnRight);
        currentRotation.mul(tempMatrix, currentRotation); // <--- und hier
        updateAll();
    }
die neue Rotation von links dranmultipliziert?
 

darX

Mitglied
So, eine letzte Frage:

Ich möchte einen RotationsInterpolator benutzen, um die Flügel eines bewegenden Objektes zu animieren.

Dabei habe ich 2 Probleme festgestellt:

1.) Die Flügel drehen sich um ihre eigene Achse, was total komisch aussieht.

2.) Sobald die Animation startet sind die Flügel nicht mehr an ihrer Position, sondern verschieben sich vor das Objekt und animiereren da. Dabei habe ich sie ja pe TransformGroup an das Objekt geheftet. Die Ani scheint das allerdings komplett zu ignorieren.


Letztendlich erstelle ich einen Rotationsinterpolator, übergeben ihm die TransformGroup, in der die Flügel drinne sind und füge dem Interpolator dem Szenegraphen hinzu. Sollte doch alles gewesen sein oder nicht?

Interpolatoren scheinen ein generelles Problem in java3d zu sein habe ich das Gefühl.???:L
 

darX

Mitglied
Hab mal die Animationsmethode in der hauptklasse erstmal auskommentiert, damit man sieht wie das objekt aussehen soll. Links und rechts habe ich jeweils 2 Flügel an die Box geheftet.
 

Anhänge

  • Beispiel2AnimationFluegel.zip
    15,5 KB · Aufrufe: 7

Marco13

Top Contributor
Hmja... erstmal die pragmatische Änderung: Zwischen die TransformGroup, die den Flügel neben der Box positioniert, und den Flügel selbst muss man eine weitere TransformGroup hängen - (hier linkerFlügelTransform2 - nur ein Hack...). DIESE "linkerFlügelTransform2" wird dann von der Animation verändert. (Die Animation "weiß" ja sonst nicht, dass diese Transformation nicht nur die Rotation, sondern auch das Verschieben neben die Box enthalten soll)

Zusätzlich habe ich noch im BewegeFlügel-Konstruktor "animation.setEnable(true);" gesetzt. Jetzt dreht sich der Flügel da ein bißchen rum.

Java:
    private void createFlugObjekt(BranchGroup objRoot,SimpleUniverse su)
    {
         Box box = new Box();
         Box linkerFlügel = new Box(1.0f,0.1f,0.2f,null);
         Box rechterFlügel = new Box(1.0f,0.1f,0.2f,null);

         boxTransform.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
         boxTransform.addChild(box);


         Transform3D linkerFlügelTransform3D = new Transform3D();
         linkerFlügelTransform3D.setTranslation(new Vector3f(-2f,0.5f,0));

         Transform3D rechterFlügelTransform3D = new Transform3D();
         rechterFlügelTransform3D.setTranslation(new Vector3f(2f,0.5f,0));

         linkerFlügelTransform.setTransform(linkerFlügelTransform3D);
         TransformGroup linkerFlügelTransform2 = new TransformGroup();

         linkerFlügelTransform.addChild(linkerFlügelTransform2);
         linkerFlügelTransform2.addChild(linkerFlügel);

         rechterFlügelTransform.setTransform(rechterFlügelTransform3D);
         rechterFlügelTransform.addChild(rechterFlügel);

         boxTransform.addChild(linkerFlügelTransform);
         boxTransform.addChild(rechterFlügelTransform);

         ThirdPersonControl tPC = new ThirdPersonControl(boxTransform,su);
         tPC.setSchedulingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),1000));


         //Animation für den linken Flügel wird hier gesetzt bzw. initialisiert
       BewegeFlugel tauchAni = new BewegeFlugel(linkerFlügelTransform2,tPC, objRoot, su);
       tauchAni.setSchedulingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),1000));


         objRoot.addChild(boxTransform);
         objRoot.addChild(tPC);
    }

Aber ACHTUNG: Das ist nur ein Hack. Du meintest, das wäre "eine letzte Frage" - das stimmt so nicht. Wenn du so weitermachst, wirst du ziemlich schnell in Chaos versinken, und das kann dann sehr frustrierend sein. So ein Spiel, wo man frei in 3D in der Gegend rumschwimmt und Sachen ausweicht und vielleicht Goodies aufsammelt und so könnte richtig unterhaltsam werden :toll: aber im Moment sieht es aus, als würde es immer undurchschaubarer und hakeliger, und früher oder später werde ("sogar") ich ( ;) ) die KSKBs (oder dann: GSKBs) nicht mehr nachvollziehen wollen.

Versuche, das ganze etwas klarer und systematischer zu strukturieren. Ein Patentrezept kann ich dafür nicht liefern, aber auf Basis der bisherigen Fragen könnte das vielleicht sowas sein:
- Die Klasse "StartHere" ist die Hauptklasse, die erstmal nur irgendein Objekt anzeigt, das an einer TransformGroup hängt.
- Erstelle dann eine ThirdPersonControl, mit der du NUR irgendein Objekt (+Camera), das an einer TransformGroup hängt, wie gewünscht steuern kannst. Am besten ohne direkte Anhängigkeiten zu SimpleUniverse & Co: Eigentlich braucht diese Klasse kein SimpleUniverse, sondern nur eine TransformGroup für das Objekt und eine für die ViewPlatform. Das erstellen dieser ThirdPersonControl sollte in einer, dedizierten Methode "createControl" in der StartHere passieren. Wenn du damit fertig bist, nimm' die ThirdPersonControl wieder raus (!).
- Erstelle dann eine Klasse "AnimatedShip" oder so. Überlege dir, welche Methoden diese Klasse braucht. Vermutlich nicht soo viele: Eine wie "getMainTransformGroup", die den "Wurzelknoten des Schiffes" liefert (also der, wo Box und Flügel dranhängen, mit welchen Transforms auch immer). Zusätzlich die Methoden, die du brauchst, um das Paddeln zu steuern. Vielleicht sowas wie [c]void paddle(float geschwindigkeit)[/c], wo man 0 übergibt um zu stoppen, und 1 um mit maximaler Geschwindigkeit zu Paddeln.
- Wenn das fertig ist, versuche, die ThirdPersonControl und das AnimatedShip zu kombinieren - das wird bedeuten, dass man vielleicht bei der ThirdPersonControl einen Listener braucht, um mitzukriegen, welche Taste gedrück ist, um daraufhin "ship.paddle(1)" aufzurufen oder so, das weiß ich jetzt nicht. Idealerweise sollten sich diese beiden Klassen aber trotzdem nicht direkt kennen.
- Vermutlich wird es noch weitere Klassen geben: "Hindernis", "Goodie", "Enemy" oder sonstwas. Überlege dir, welche Methoden diese Klassen brauchen, wie die Vererbungshierarchie sein kann, und wie man diese Klassen gut modellieren und ihre Funktionalität gut kapseln kann. Später soll ja vermutlich mal sowas gehen wie
Code:
void baueLevel()
{
    world.setPlayer(new Player(-10,20,10));
    world.addObstacle(new Stone(10,20,10));
    world.addObstacle(new Mine(20,20,10));
    world.addGoodie(new ExtraLife(30,40,50));
    world.addEnemy(new Octopus(30,40,50));
}
oder so, ohne dass man sich noch mit TransformGroups oder Alphas herumschlagen muss...


Dabei immer darauf achten, den Klassen klar definierte Methoden und möglichst wenige Fields zu geben. Genau das, was sie brauchen, um ihre Aufgabe zu erfüllen. Im Moment liegen z.B.
Code:
    TransformGroup boxTransform = new TransformGroup();
    TransformGroup linkerFlügelTransform = new TransformGroup();
    TransformGroup rechterFlügelTransform = new TransformGroup();
in der StartHere-Klasse. Die haben da nichts zu suchen! Die boxTransform könnte in der Ship-Klasse liegen, und bei "getMainTransformGroup" zurückgegeben werden, aber die anderen TransformGroups braucht man nur dort, wo die Flügel gebaut werden (z.B. im Konstruktor der "Ship"-Klasse!)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
A Minecraft Java Buch fehlermeldung Spiele- und Multimedia-Programmierung 67
yakazuqi Minecraft java.lang.Error: Watchdog Spiele- und Multimedia-Programmierung 3
L Fehler bei "Nochmal Spielen" (Java) Spiele- und Multimedia-Programmierung 1
N Minecraft Java Error Spiele- und Multimedia-Programmierung 6
M "Java Datei" Cannot be resolved to a variable Spiele- und Multimedia-Programmierung 2
1Spinne Minecraft Fabric Modding Java Error Spiele- und Multimedia-Programmierung 2
Joris Minecraft Minecraft Java Server Spiele- und Multimedia-Programmierung 6
Shanic Minecraft Minecraft Forge Server "Falsche Java Version" Spiele- und Multimedia-Programmierung 6
O Browser-basiertes online Pokerspiel mit Java Spiele- und Multimedia-Programmierung 1
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
G VST-Plugins in Java verwenden Spiele- und Multimedia-Programmierung 0
P Audio Visualizer mit OpenGL in Java? Spiele- und Multimedia-Programmierung 4
P Snake Java Hilfe Spiele- und Multimedia-Programmierung 4
D Minecraft [Minecraft] Java Start Fehler (Core-Dump) Spiele- und Multimedia-Programmierung 1
T Welche packages aus der java api doku ist hilfreich zur Android Spieleprogrammierung Spiele- und Multimedia-Programmierung 2
A Programmieren eines Memorys mit Java (in Eclipse) Spiele- und Multimedia-Programmierung 5
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
C Java findet FluidSynth nicht Spiele- und Multimedia-Programmierung 2
I Java Andere Fenster in Borderless-Mode setzen Spiele- und Multimedia-Programmierung 16
leon_krys Java-Bußgeldrechner Spiele- und Multimedia-Programmierung 5
G [Java/KryoNet/LibGDX] Mutliplayer Packet Frage Spiele- und Multimedia-Programmierung 2
P Website mit Java Backend? Spiele- und Multimedia-Programmierung 1
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
J Fertigungstechnik.. PLS HALP.. Quellcode vom Text in java-Klasse speichern Spiele- und Multimedia-Programmierung 2
E Kalah Java Implementation Spiele- und Multimedia-Programmierung 1
G [Java] Vereinfachung von Boolean Abfragen Spiele- und Multimedia-Programmierung 3
G [LibGDX/Java] ArrayList Object Speicher Spiele- und Multimedia-Programmierung 3
T Java 3D Spiele- und Multimedia-Programmierung 2
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
J Java Buttons Spiele- und Multimedia-Programmierung 6
T Java Kalender Spiele- und Multimedia-Programmierung 5
Ice4P4rty Java Optische Oberfläche Spiele- und Multimedia-Programmierung 2
MABY Eine mp3 Datei in Java abspielen Spiele- und Multimedia-Programmierung 14
D Java Bomberman Probleme java.lang.NullPointerException Spiele- und Multimedia-Programmierung 1
N Spiele-Menü in Java Spiele- und Multimedia-Programmierung 9
J HDMI Ausgänge mit Java programmieren? Spiele- und Multimedia-Programmierung 18
H Yu-Gi-Oh! Mit Java was tun? Spiele- und Multimedia-Programmierung 6
G Component System Java 2D Game LibGDX Spiele- und Multimedia-Programmierung 6
S Pong java.lang.StackOverflowError Spiele- und Multimedia-Programmierung 3
C Java aus Klasse rausgehen Spiele- und Multimedia-Programmierung 2
MaxG. Java Internet Radio Spiele- und Multimedia-Programmierung 6
G [Java Server] Allgemeine Frage zum Thema Networking in Videospielen Spiele- und Multimedia-Programmierung 15
P java.lang.NoClassDefFoundError: in Greenfoot Spiele- und Multimedia-Programmierung 0
G Java Achsen invertieren Spiele- und Multimedia-Programmierung 2
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
$ Einstieg in Java Game Development Spiele- und Multimedia-Programmierung 11
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
S Hilfe bei Java Gui Spiele- und Multimedia-Programmierung 2
D Java sound pulseaudio Spiele- und Multimedia-Programmierung 0
David Schwarzbeck Java 3 dimensionale Kollisions Abfrage Spiele- und Multimedia-Programmierung 2
M Gesellschaftsspiel Mühle in Java programmieren Spiele- und Multimedia-Programmierung 3
beatles Java Minesweeper - OS X und Win7 Unterschied Spiele- und Multimedia-Programmierung 2
D Minecraft Java JDK installiert - Minecraft läuft nichtmehr in 64 Bit Spiele- und Multimedia-Programmierung 2
E TMX - Dateien in Java laden Spiele- und Multimedia-Programmierung 1
K Erstellen eines Fotoalbums mit Java Spiele- und Multimedia-Programmierung 8
windl MoviePlayer in Java Spiele- und Multimedia-Programmierung 0
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
D Java Webgame, welche Frameworks oder Techs sind von Nöten? Spiele- und Multimedia-Programmierung 5
P Java 2D Bug? Spiele- und Multimedia-Programmierung 8
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
R Java App sendet Midi Daten über Flash Spiele- und Multimedia-Programmierung 3
O Java Zeile aus Textdatei zufällig ausgeben Spiele- und Multimedia-Programmierung 8
K Bestes Bildformat für Spielegrafiken und deren Einbindung in Java Spiele- und Multimedia-Programmierung 2
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
T Alle Referenzen zu einer Klasse aus Java Bytecode ersetzt, JVM sucht trotzdem diese Klasse Spiele- und Multimedia-Programmierung 1
J Java Kollisionsabfrage Spiele- und Multimedia-Programmierung 21
Flo. android java tastatureingaben abfangen. Spiele- und Multimedia-Programmierung 1
J Java Steuerberechnung hilfe Spiele- und Multimedia-Programmierung 17
C Export als .jar funktioniert nicht richtig (JAVA 3D) Spiele- und Multimedia-Programmierung 5
P Java Grafiken mit Rechnungen verknüpfen Spiele- und Multimedia-Programmierung 4
U Minecraft Mit Java auf Minecraft Server anmelden Spiele- und Multimedia-Programmierung 11
F Das sag mir einer Java ist plattform unabhänig ! Spiele- und Multimedia-Programmierung 10
C virtueller stereomix (java sound API) Spiele- und Multimedia-Programmierung 0
S Engine2D - Java 2D Engine Spiele- und Multimedia-Programmierung 20
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
C Java Kollisionserkennung Spiele- und Multimedia-Programmierung 4
U Blender in Java Spiele- und Multimedia-Programmierung 8
J Java Fussballspiel Player-KI in der Bewegungsphase Spiele- und Multimedia-Programmierung 4
K Java 15/Slide/Boss Puzzle Spiele- und Multimedia-Programmierung 2
T Java 3D - Step oder IGES Spiele- und Multimedia-Programmierung 1
H 3D Spiele mit Java - Diskussion Spiele- und Multimedia-Programmierung 35
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
M Bilder in Java Spiele- und Multimedia-Programmierung 7
A Minecraft Java Ubuntu Minecraft Server startet nicht - ERROR (SIGSEGV) Spiele- und Multimedia-Programmierung 7
N Minecraft java lernen minecraft Spiele- und Multimedia-Programmierung 20
J 2d Ansicht mit Java 3d Spiele- und Multimedia-Programmierung 13
F Abbyy finereader aus java starten, Ergebnis zurück? Spiele- und Multimedia-Programmierung 2
P Zeichenübungen mit Java Spiele- und Multimedia-Programmierung 4
M Minecraft weitere Java Entwickler für minecraft projekt gesucht Spiele- und Multimedia-Programmierung 0
I Minecraft Java programmierungs fehler "MineCraft" Spiele- und Multimedia-Programmierung 6
J Java 2D Sicht Spiele- und Multimedia-Programmierung 13
H wma Datei abspielen: java.io.IOException: Resetting to invalid mark Spiele- und Multimedia-Programmierung 11
M Würdet ihr sagen Java Applets eignen sich gut Spiele- und Multimedia-Programmierung 5

Ähnliche Java Themen

Neue Themen


Oben