Class BeweglichesGutesObjekt

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by UnbeweglichesObjekt
                  extended by BeweglichesGutesObjekt
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
BeweglichesBoesesObjekt, Sandwich, SteuerbaresObjekt

public class BeweglichesGutesObjekt
extends UnbeweglichesObjekt

Stellt ein bewegliches, gutes Objekt dar, welches anderen Objekten ausweicht und vom Rand abprallt. Dieses Objekt hat eine Richtung - ausgedrückt durch einen Richtungsvektor - und eine Geschwindigkeit. Der Konstruktor des Objekts legt - ausgehend von der eingestellten Geschwindigkeit für neu anzulegende Objekte - zufällig die X- und Y-Richtung fest. Weiters verfügt das Objekt über eine bewege-Methode, welche das Objekt versucht in die für das Objekt festgelegte Richtung zu bewegen. Dabei wird auf Kollisionen reagiert

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static int geschwindigkeit
          Die Geschwindigkeit der anzulegenden Objekte.
protected  int xRichtung
          X- und Y-Richtung des Objektes.
protected  int yRichtung
           
 
Fields inherited from class UnbeweglichesObjekt
bild, gestorben
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
BeweglichesGutesObjekt(java.lang.String dateiname)
          Erhält das Bild, welches dargestellt werden soll.
 
Method Summary
 void bewege()
          Versucht das Objekt in die eingestellte Richtung zu bewegen.
static int getGeschwindigkeit()
          Liefert die Geschwindigkeit alle neu anzulegenden Objekte zurück
 int getxRichtung()
          Liefert die momentane X-Richtung des Objektes.
 int getyRichtung()
          Liefert die momentane Y-Richtung des Objektes.
static void setGeschwindigkeit(int geschwindigkeit)
          Legt die Geschwindigkeit für alle neu anzulegenden Objekte fest.
 void setxRichtung(int xRichtung)
          Setzt die X-Richtung des Objektes.
 void setyRichtung(int yRichtung)
          Setzt die Y-Richtung des Objektes.
 
Methods inherited from class UnbeweglichesObjekt
getGestorben, getObjektBei, paint, stirb
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

xRichtung

protected int xRichtung
X- und Y-Richtung des Objektes. Dabei müssen diese beiden Werte immer betragsmäßig gleich sein


yRichtung

protected int yRichtung

geschwindigkeit

protected static int geschwindigkeit
Die Geschwindigkeit der anzulegenden Objekte. Ist die geschwindigkeit gleich 1, dann müssen die Beträge von X- und Y-Richtung zwischen 1 und 10 liegen. Ist geschwindigkeit gleich 2, dann müssen die Richtungen zwischen 11 und 20 liegen. Bei 3 müssen sie zwischen 21 und 30 liegen, usw.

Constructor Detail

BeweglichesGutesObjekt

public BeweglichesGutesObjekt(java.lang.String dateiname)
Erhält das Bild, welches dargestellt werden soll. Im Konstruktor wird auch - ausgehend von der eingestellten Geschwindigkeit für neu anzulegende Objekte die Geschwindigkeit dieses Objektes folgendermaßen bestimmt:
Ist die Geschwindigkeit = 1, so wird dir X- und Y-Richtung auf zufällige Werte zwischen 1 und 10 gesetzt. Dabei müssen X- und Y-Richtung immer betragsmäßig gleich gewählt werden. Wird beispielsweise die X-Richtung auf -3 gesetzt, so darf die Y-Richtung nur auf 3 oder -3 gesetzt werden. Je nach Geschwindigkeit müssen folgende Richtungen ermittelt werden:
geschwindigkeit = 1, Richtungen betragsmäßig zwischen 1 und 10
geschwindigkeit = 2, Richtungen betragsmäßig zwischen 11 und 20
geschwindigkeit = 3, Richtungen betragsmäßig zwischen 21 und 30
geschwindigkeit = 4, Richtungen betragsmäßig zwischen 31 und 40
usw.

Parameters:
dateiname - der das dazustellende Bild enthält
Method Detail

bewege

public void bewege()
Versucht das Objekt in die eingestellte Richtung zu bewegen. Erfolgt bei der schrittweisen Bewegung des Objektes ein Zusammenprall mit einem anderen Objekt oder mit dem Fensterrand muss ausgewichen werden.
Programmierhinweis: Siehe Aufgabenstellung


getxRichtung

public int getxRichtung()
Liefert die momentane X-Richtung des Objektes. Ist die Richtung negativ, bewegt sich das Objekt nach links, sonst nach rechts

Returns:
die X-Richtung des Objektes

setxRichtung

public void setxRichtung(int xRichtung)
Setzt die X-Richtung des Objektes. Dabei wird die Y-Richtung entsprechen angepasst. Ist beispielsweise die Y-Richtung auf -3 gesetzt und die X-Richtung wird auf 5 eingestellt, so muss die Y-Richtung auf -5 eingestellt werden, den X- und Y-Richtung müssen betragsmäßig immer gleich sein

Parameters:
xRichtung - die eingestellt werden soll

getyRichtung

public int getyRichtung()
Liefert die momentane Y-Richtung des Objektes. Ist die Richtung negativ, bewegt sich das Objekt nach oben, sonst nach unten

Returns:
die Y-Richtung des Objektes

setyRichtung

public void setyRichtung(int yRichtung)
Setzt die Y-Richtung des Objektes. Dabei wird die X-Richtung entsprechen angepasst. Ist beispielsweise die X-Richtung auf -3 gesetzt und die Y-Richtung wird auf 5 eingestellt, so muss die X-Richtung auf -5 eingestellt werden, den X- und Y-Richtung müssen betragsmäßig immer gleich sein

Parameters:
yRichtung - die eingestellt werden soll

getGeschwindigkeit

public static int getGeschwindigkeit()
Liefert die Geschwindigkeit alle neu anzulegenden Objekte zurück

Returns:
die Geschwindigkeit aller neu anzulegenden Objekte

setGeschwindigkeit

public static void setGeschwindigkeit(int geschwindigkeit)
Legt die Geschwindigkeit für alle neu anzulegenden Objekte fest. Die Geschwindigkeit muss größer als 0 sein

Parameters:
geschwindigkeit -