Class Layer
java.lang.Object
de.pirckheimer_gymnasium.engine_pi.Layer
- All Implemented Interfaces:
ActorAdder,FrameUpdateListenerRegistration,KeyStrokeListenerRegistration,MouseClickListenerRegistration,MouseScrollListenerRegistration
public class Layer
extends Object
implements KeyStrokeListenerRegistration, MouseClickListenerRegistration, MouseScrollListenerRegistration, FrameUpdateListenerRegistration, ActorAdder
Eine Ebene bieten die Möglichkeit,
Actor-Objekte vor und hinter der
Zeichenebene mit zusätzlichen Eigenschaften (wie Parallaxe) zu rendern.- Author:
- Michael Andonie
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidFügt einen oder mehrereActor-Objekte der Ebene hinzu.doubleGibt die Schwerkraft, die momentan auf diese Ebene wirkt, als Vektor in [N] bzw.intGibt die Position des Layers aus.getScene()getVisibleArea(Vector gameSizeInPixels) Gibt die derzeit auf dem Bildschirm sichtbare Fläche des Layers an.Gibt denWorldHandlerdieser Ebene aus.booleanGibt an, ob dieses Layer gerade sichtbar ist.final voidEntferne einen oder mehrereActor-Objekte aus der Ebene.voidrender(Graphics2D g, Camera camera, int width, int height) voidsetGravity(double gravityX, double gravityY) Setzt die Schwerkraft durch zwei Eingabeparameter für die x- und y-Richtung, die auf alle Objekte innerhalb dieser Ebene wirkt.voidsetGravity(Vector gravity) Setzt die Schwerkraft als Vektor, die auf alle Objekte innerhalb dieser Ebene wirkt.voidSetzt die Schwerkraft, die auf der Erde wirkt: 9.81 [N] bzw.voidsetLayerPosition(int position) Setzt die Position dieses Layers relativ zu anderen Layers.voidsetParallaxPosition(double parallaxX, double parallaxY) Setzt die Parallaxen-Bewegung für dieser Ebene:1ist keine Parallaxe (Bewegung exakt mit der Kamera) Werte zwischen0und1schaffen einen entfernten Effekt: Die Bewegung ist weniger als die der Kamera0bedeutet, die Bewegung der Kamera hat gar keinen Einfluss auf das Layer. Negative Werte sorgen für Bewegung entgegen der Kamera Werte> 1verstärken die Bewegung der Kamera (z.B.voidsetParallaxRotation(double parallaxRotation) Setzt die Parallaxe der Rotation.voidsetParallaxZoom(double parallaxZoom) Setzt den Parallaxen-Zoom für diese Ebene:1: Normaler Zoom mit der Kamera0: Kamerazoom hat keinen Einfluss auf dieses Layer.0 < parallaxZoom < 1: Der Zoomeffekt tritt schwächer auf.parallaxZoom > 1: Der Zoomeffekt tritt stärker auf.voidsetTimeDistort(double timeDistort) Setzt einen Zeitverzerrungsfaktor.voidsetVisible(boolean visible) Setzt, ob diese Ebene sichtbar sein soll.voidsetVisibleHeight(double height, Vector gameSizeInPixels) Setzt den Kamerazoom exakt, sodass die sichtbare Höhe des sichtbaren Fensters einer bestimmten Länge entspricht.voidsetVisibleWidth(double width, Vector gameSizeInPixels) Setzt den Kamerazoom exakt, sodass die sichtbare Breite des sichtbaren Fensters einer bestimmten Länge entspricht.voidstep(double pastTime) translateWorldPointToFramePxCoordinates(Vector worldPoint) Übersetzt einen Punkt auf diesem Layer zu der analogen, aktuellen Pixelkoordinate im zeichnenden Frame.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.actor.ActorAdder
addCircle, addCircle, addCircle, addCircle, addCircle, addHexagon, addHexagon, addHexagon, addHexagon, addHexagon, addImage, addImage, addPentagon, addPentagon, addPentagon, addRectangle, addRectangle, addRectangle, addRegularPolygon, addRegularPolygon, addRegularPolygon, addRegularPolygon, addText, addText, addText, addText, addTriangle, addTriangle, addTriangle, addTriangle, addTriangleMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.FrameUpdateListenerRegistration
addFrameUpdateListener, defer, delay, removeFrameUpdateListener, repeat, repeat, repeat, repeat, repeatMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.KeyStrokeListenerRegistration
addKeyStrokeListener, removeKeyStrokeListenerMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.MouseClickListenerRegistration
addMouseClickListener, removeMouseClickListenerMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.MouseScrollListenerRegistration
addMouseScrollListener, removeMouseScrollListener
-
Constructor Details
-
Layer
Erstellt eine neue Ebene.
-
-
Method Details
-
getParent
-
getScene
- Specified by:
getScenein interfaceActorAdder
-
setLayerPosition
Setzt die Position dieses Layers relativ zu anderen Layers.- Parameters:
position- Die neue Position dieser Ebene. Je höher dieser Wert, desto weiter vorne ist sie.
-
getLayerPosition
Gibt die Position des Layers aus.- Returns:
- Der Wert, der die Position dieses Layers repräsentiert.
- See Also:
-
setParallaxPosition
Setzt die Parallaxen-Bewegung für dieser Ebene:1ist keine Parallaxe (Bewegung exakt mit der Kamera)- Werte zwischen
0und1schaffen einen entfernten Effekt: Die Bewegung ist weniger als die der Kamera 0bedeutet, die Bewegung der Kamera hat gar keinen Einfluss auf das Layer.- Negative Werte sorgen für Bewegung entgegen der Kamera
- Werte
> 1verstärken die Bewegung der Kamera (z.B. für Vordergrund).
- Parameters:
parallaxX- Der x-Wert der Parallaxen-Bewegung.parallaxY- Der y-Wert der Parallaxen-Bewegung.
-
setParallaxZoom
Setzt den Parallaxen-Zoom für diese Ebene:1: Normaler Zoom mit der Kamera0: Kamerazoom hat keinen Einfluss auf dieses Layer.0 < parallaxZoom < 1: Der Zoomeffekt tritt schwächer auf.parallaxZoom > 1: Der Zoomeffekt tritt stärker auf.parallaxZoom < 0: Der Zoomeffekt tritt betragsmäßig ähnlich und umgekehrt auf.
-
setParallaxRotation
Setzt die Parallaxe der Rotation. Diese Ebene wird um[kamerarotation] * parallaxRotationrotiert.- Parameters:
parallaxRotation- Die Rotationsparallaxe.
-
setTimeDistort
Setzt einen Zeitverzerrungsfaktor. Die Zeit in der Physiksimulation vergeht standardmäßig in Echtzeit, kann allerdings verzerrt werden.- Parameters:
timeDistort- Zeit in der Simulation = Echtzeit * Verzerrungsfaktor
- Werte
>1lassen die Zeit schneller vergehen - Werte
<1lassen die Zeit langsamer vergehen 1lässt die Zeit in Echtzeit vergehen- Werte
<=0sind nicht erlaubt
- Werte
-
setGravity
Setzt die Schwerkraft als Vektor, die auf alle Objekte innerhalb dieser Ebene wirkt.- Parameters:
gravity- Die neue Schwerkraft alsVector. Die Einheit ist [N] bzw. [m/s^2].- See Also:
- jbox2d source code:
- dynamics/World.java#L997-L1004
- box2d source code:
- b2_world.h#L312-L315
-
setGravity
Setzt die Schwerkraft durch zwei Eingabeparameter für die x- und y-Richtung, die auf alle Objekte innerhalb dieser Ebene wirkt.- Parameters:
gravityX- Die neue Schwerkraft, die in X-Richtung wirken soll. Die Einheit ist [N] bzw. [m/s^2].gravityY- Die neue Schwerkraft, die in Y-Richtung wirken soll. Die Einheit ist [N] bzw. [m/s^2].- See Also:
- jbox2d source code:
- dynamics/World.java#L997-L1004
- box2d source code:
- b2_world.h#L312-L315
-
setGravityOfEarth
Setzt die Schwerkraft, die auf der Erde wirkt: 9.81 [N] bzw. [m/s^2] nach unten (x: 0, y: -9.81).- See Also:
-
getGravity
Gibt die Schwerkraft, die momentan auf diese Ebene wirkt, als Vektor in [N] bzw. [m/s^2] zurück.- Returns:
- Die Schwerkraft, die momentan auf diese Ebene wirkt, als Vektor in [N] bzw. [m/s^2].
-
setVisible
Setzt, ob diese Ebene sichtbar sein soll.- Parameters:
visible-true: Die Ebene ist sichtbar, wenn es an einer Szene angemeldet ist.false: Die Ebene ist auch dann nicht sichtbar, wenn es an einer Szene angemeldet ist.- See Also:
-
isVisible
Gibt an, ob dieses Layer gerade sichtbar ist.- Returns:
true: Die Ebene ist sichtbar.false: Die Ebene ist nicht sichtbar.- See Also:
-
add
Fügt einen oder mehrereActor-Objekte der Ebene hinzu.- Parameters:
actors- Ein oder mehrereActor-Objekte.
-
remove
Entferne einen oder mehrereActor-Objekte aus der Ebene.- Parameters:
actors- Ein oder mehrereActor-Objekte.
-
translateWorldPointToFramePxCoordinates
Übersetzt einen Punkt auf diesem Layer zu der analogen, aktuellen Pixelkoordinate im zeichnenden Frame.- Parameters:
worldPoint- Ein Punkt auf dem Layer- Returns:
- Ein Vektor in Pixelkoordinaten (nicht Meter, die y-Achse
ist umgekehrt), der mit der aktuellen Kameraeinstellung dem
angegebenen
worldPointentspricht
-
getVisibleArea
Gibt die derzeit auf dem Bildschirm sichtbare Fläche des Layers an.- Returns:
- Die sichtbare Fläche als Bounds Objekt mit Angaben in Meter
- See Also:
-
setVisibleWidth
Setzt den Kamerazoom exakt, sodass die sichtbare Breite des sichtbaren Fensters einer bestimmten Länge entspricht.- Parameters:
width- Die Breite in Meter, auf die die Kamera im Fenster exakt zu setzen ist.- See Also:
-
setVisibleHeight
Setzt den Kamerazoom exakt, sodass die sichtbare Höhe des sichtbaren Fensters einer bestimmten Länge entspricht.- Parameters:
height- Die Höhe in Meter, auf die die Kamera im Fenster exakt zu setzen ist.- See Also:
-
calculatePixelPerMeter
- Returns:
- Die Anzahl an Pixel, die ein Meter misst.
-
render
-
getWorldHandler
Gibt denWorldHandlerdieser Ebene aus.- Returns:
- Der
WorldHandlerdieser Ebene.
-
step
-
getFrameUpdateListeners
- Specified by:
getFrameUpdateListenersin interfaceFrameUpdateListenerRegistration- Returns:
- Liste der
FrameUpdateListener
-
getKeyStrokeListeners
- Specified by:
getKeyStrokeListenersin interfaceKeyStrokeListenerRegistration
-
getMouseClickListeners
- Specified by:
getMouseClickListenersin interfaceMouseClickListenerRegistration
-
getMouseScrollListeners
- Specified by:
getMouseScrollListenersin interfaceMouseScrollListenerRegistration
-