Bewegung/Kollision von Objekten auf Tastendruck

Status
Nicht offen für weitere Antworten.

Franziska

Mitglied
Hallo,
ich möchte auf ein Objekt sich auf ein anderes zubewegen und bei Kollision stoppen lassen. Hierfür soll später noch ein Kollisionsverhalten folgen.
Die Bewegung soll erst auf Tastendruck oder ähnliches starten. Bis jetzt bewegt sich mein Objekt wie folgt:

Code:
        PositionInterpolator posIPObject= new PositionInterpolator(objectAlpha, tgObject,movementAxis,
	                                                   -2.0f,1.0f);
	    
	    posIPObject.setSchedulingBounds(bounds);
	    posIPObject.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
	 	    
	    tgObject.addChild(posIPObject);

Die Bewegung startet mit Beginn der Szene.

Wie kann man diese Bewegung erst auf einen Tastendruck oder ähnliches starten lassen?
Mit einem Behavior?
Müsste dies zusammen mit dem Kollisonsverhalten in einem Behavior geschehen?
 

Illuvatar

Top Contributor
Mach einen Behavior, der auf den Tastendruck reagiert, und in dem aktivierst du dann den anderen Behavior.
Das Kollisionsverhalten wäre dann noch ein weiterer Behavior.
 

Franziska

Mitglied
Wie wird dann die Bewegung im Behavior realisiert?
Auch mit dem PositionInterpolator? Wird der dann als Child an das Objekt im Behavior gehängt?
 

Illuvatar

Top Contributor
Den PostionInterpolator hast du doch schon realisiert, oder? Den machst du eben anfangs auf setEnable(false). Und im processStimulus von deinem eigenen Behavior setzt du das flag auf true.
 

Franziska

Mitglied
setEnable<- geht leider nicht.
Die Bewegung startet zum gleichen Zeitpunkt wie vorher, man sieht sie nur nicht. Drücke ich eine Taste sehe ich mein Objekt die Bewegung zu Ende ausführen. Wenn ich mit dem Tastendruck lange warte hat das Objekt die Endposition erreicht.
Die Bewegung soll aber erst ab tastendruck starten.
 

Illuvatar

Top Contributor
Stimmt natürlich, da das Alpha weiterläuft. Vielleicht ist es also das sinnvollste, einfach das Alpha anzuhalten.

Da ich da selber etwas rumprobieren musste, ist dabei ein Beispiel entstanden ;) Kannst es anschauen, wenn du willst:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.util.*;
import com.sun.j3d.utils.universe.*;  //SimpleUniverse
import com.sun.j3d.utils.geometry.ColorCube;

public class StartOnKeyTest extends JFrame implements ActionListener
{
  public static final int BUTTON_PRESSED_ID = 987;
  private Behavior b;
  public StartOnKeyTest()
  {
    super ("StartOnKeyTest");
    setSize (500, 500);
    setLayout (new BorderLayout());
    setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo (null);  //zentrieren
    JPopupMenu.setDefaultLightWeightPopupEnabled (false);
    setCloseMenuBar (this);
    //Jetzt kommt der 3D-Teil
    Canvas3D c3d = new Canvas3D (SimpleUniverse.getPreferredConfiguration());  //So am besten
    SimpleUniverse simpleU = new SimpleUniverse (c3d);  //Das VirtualUniverse, hier wird auch schon der View hinzugefügt
    BranchGroup bg = createSceneGraph();  //Haupt-BranchGroup
    bg.compile();  //Optimiert das Rendern
    simpleU.addBranchGraph (bg);  //Fügt den SceneGraph hinzu
    simpleU.getViewingPlatform().setNominalViewingTransform();  //Versetzt die Kamera so, dass man gleich etwas sehen kann
    //So einfach war das :)
    add (c3d, BorderLayout.CENTER);
    setVisible (true);
  }
  private BranchGroup createSceneGraph()
  {
    BranchGroup scene = new BranchGroup();
    TransformGroup tg = new TransformGroup();
    tg.setCapability (TransformGroup.ALLOW_TRANSFORM_WRITE);
    scene.addChild (tg);
    ColorCube cc = new ColorCube(0.4f);
    tg.addChild(cc);
    Alpha a = new Alpha (1, 5000);
    Transform3D axis = new Transform3D();
    axis.rotY(Math.PI / 2);
    Interpolator mover = new PositionInterpolator (a, tg, axis, 0, 10);
    mover.setSchedulingBounds (new BoundingSphere (new Point3d(), 1000));
    tg.addChild (mover);
    a.setStartTime (System.currentTimeMillis());
    a.pause();
    MyBehavior mb = new MyBehavior (mover);
    mb.setSchedulingBounds (new BoundingSphere (new Point3d(), 1000));
    tg.addChild (mb);
    return scene;
  }
  //Beenden-Menu
  private void setCloseMenuBar (JFrame f)
  {
    JMenuBar jmb = new JMenuBar();
    JMenu jm = new JMenu ("Datei");
    jmb.add (jm);
    JMenuItem close = new JMenuItem ("Beenden");
    jm.add (close);
    close.addActionListener (this);
    f.setJMenuBar (jmb);
  }
  public void actionPerformed (ActionEvent evt)
  {
    if ("Beenden".equals (evt.getActionCommand())){
      System.exit (0);
    }
  }
  //Startmethode
  public static void main (String[]args)
  {
    new StartOnKeyTest();
  }
}
class MyBehavior extends Behavior
{
  private WakeupCondition wc = new WakeupOnAWTEvent (AWTEvent.KEY_EVENT_MASK);
  private Interpolator b;
  public MyBehavior(Interpolator b)
  {
    this.b = b;
  }
  public void processStimulus (Enumeration criteria)
  {
    b.getAlpha().resume();
  }
  public void initialize()
  {
    wakeupOn (wc);
  }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Spielprogrammierung mit bewegung und kollision Spiele- und Multimedia-Programmierung 24
YangLee Ausgabe von einer Bewegung bei mehrzeiligen Strings Spiele- und Multimedia-Programmierung 1
D Arrays auf Bewegung prüfen (2048) Spiele- und Multimedia-Programmierung 1
Furtano Vektoren für Bewegung für eine 2D-Simulation Spiele- und Multimedia-Programmierung 3
K Bewegung falsch Spiele- und Multimedia-Programmierung 6
B Webcam Bewegung markieren Spiele- und Multimedia-Programmierung 3
R Asteroid unschöne Bewegung Spiele- und Multimedia-Programmierung 13
G Bewegung eines Grafikobjektes Spiele- und Multimedia-Programmierung 7
F Probleme bei Bewegung Spiele- und Multimedia-Programmierung 7
T Flüssige Bewegung Spiele- und Multimedia-Programmierung 7
U Freie Bewegung Realisierung Spiele- und Multimedia-Programmierung 13
M Bomberman: Bewegung der Spielfigur in windows viel schneller Spiele- und Multimedia-Programmierung 12
F Brauche Hilfe bei Bewegung eines Rechtecks [Applet] Spiele- und Multimedia-Programmierung 5
B Kollision Spiele- und Multimedia-Programmierung 5
A Kollision funktioniert nicht richtig bei zu schneller Geschwindigkeit des Spielers Spiele- und Multimedia-Programmierung 0
N Kollision von zwei ImageIcons Spiele- und Multimedia-Programmierung 8
D Kollision funktioniert unten aber nicht oben Spiele- und Multimedia-Programmierung 4
J Kollision (libgdx) Spiele- und Multimedia-Programmierung 2
S Kollision Spiele- und Multimedia-Programmierung 2
J Kollision genau erkennen mit intersects Spiele- und Multimedia-Programmierung 27
K a* kollision der einheiten Spiele- und Multimedia-Programmierung 3
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
F Rechteck Kollision Spiele- und Multimedia-Programmierung 10
H 2- D Kollision Spiele- und Multimedia-Programmierung 14
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
O Kollision Polygon und Rechteck Spiele- und Multimedia-Programmierung 2
S Pacman Kollision von Münzen und Mauern Spiele- und Multimedia-Programmierung 11
P Gridpane Kollision Spiele- und Multimedia-Programmierung 3
Androbin Kollision zwischen Raster und Nicht-Raster Spiele- und Multimedia-Programmierung 2
L Kollision soll nur an oberer Seite (Breite) möglich sein Spiele- und Multimedia-Programmierung 6
Hercules Kisten Kollision Spiele- und Multimedia-Programmierung 2
S 3D-Kollision mit zwei ArrayLists Spiele- und Multimedia-Programmierung 7
T Pixelgenaue Kollision Spiele- und Multimedia-Programmierung 5
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3
S Kollision tile-based 2D Plattformer Spiele- und Multimedia-Programmierung 2
D Greenfoot Kollision Spiele- und Multimedia-Programmierung 5
D Kollision verhindern Spiele- und Multimedia-Programmierung 2
R Frage zur Kollision Spiele- und Multimedia-Programmierung 5
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Kr0e Kollision zweier Kugeln... Wo ist Newton ?? Spiele- und Multimedia-Programmierung 9
C Kollision zwischen 2 Kreisen Spiele- und Multimedia-Programmierung 3
Helgon Kollision von jeder Seite des Blocks Spiele- und Multimedia-Programmierung 3
Fab1 Kollision die 100ste Spiele- und Multimedia-Programmierung 5
D Jump'n'run Kollision bei Blöcken Spiele- und Multimedia-Programmierung 10
P PingPong Spiel - Kollision Spiele- und Multimedia-Programmierung 2
C Bitmaske und Kollision Spiele- und Multimedia-Programmierung 2
S Kollision Kreis Rechteck Spiele- und Multimedia-Programmierung 8
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
baddestpoet pixelgenaue Kollision Spiele- und Multimedia-Programmierung 4
S Kollision in 2D Spiele- und Multimedia-Programmierung 12
B Gedrehte Rechtecke Kollision Spiele- und Multimedia-Programmierung 4
J Kollision mit Block (Wand) Spiele- und Multimedia-Programmierung 11
C Kollision in Java3D Spiele- und Multimedia-Programmierung 4
J Kollision von Objekten Spiele- und Multimedia-Programmierung 7
M Asteroids Clone: Kollision zwischen Schuss und Feind Spiele- und Multimedia-Programmierung 13
Z Kollision Spiele- und Multimedia-Programmierung 3
F Kollision für Arkanoid Spiele- und Multimedia-Programmierung 2
N Kollision abfragen Spiele- und Multimedia-Programmierung 3
K Sprites / Kollision Spiele- und Multimedia-Programmierung 3
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13
M JPanel mit Graphics2D Objekten mit JScrollpane Spiele- und Multimedia-Programmierung 6
BraunBerry Rotation von Objekten um ein Raumschiff Spiele- und Multimedia-Programmierung 6
R Verschieben von Objekten langsam Spiele- und Multimedia-Programmierung 0
S [lwjgl] Renderbug bei mehreren Objekten Spiele- und Multimedia-Programmierung 2
F Kollisionsabfrage bei schnellen Objekten Spiele- und Multimedia-Programmierung 2
M Collisions mit festen Objekten Spiele- und Multimedia-Programmierung 8
P "Tiefe" in Objekten - LWJGL Spiele- und Multimedia-Programmierung 12
W Java3D: Farbe von Objekten stimmt nicht mit übergebenem RGB-Wert überein Spiele- und Multimedia-Programmierung 9
M [Java3D] Animation von mehreren Objekten Spiele- und Multimedia-Programmierung 7
StrikeTom Schwerkraft mit festen objekten darstellen Spiele- und Multimedia-Programmierung 27
B Kollisionserkennung bei gezeichneten Objekten Spiele- und Multimedia-Programmierung 2
L Platzieren von Objekten auf TileMap Spiele- und Multimedia-Programmierung 6
P Culling von Image-Objekten Spiele- und Multimedia-Programmierung 3
B 1)JButtons zeichnen 2)Kolisionsabfrage von zwei Objekten Spiele- und Multimedia-Programmierung 9
D Array aus Objekten Spiele- und Multimedia-Programmierung 2
V Koordinaten von Objekten? Spiele- und Multimedia-Programmierung 8
J Simulation mit vielen Objekten: Datenbank? Spiele- und Multimedia-Programmierung 6
G Bewegen von Objekten Spiele- und Multimedia-Programmierung 4
B Hilfe gesucht!! (bewegen von grafischen Objekten) Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen


Oben