Package rocks.friedrich.engine_omega
Class Layer
java.lang.Object
rocks.friedrich.engine_omega.Layer
- All Implemented Interfaces:
ActorCreator
,FrameUpdateListenerContainer
,KeyListenerContainer
,MouseClickListenerContainer
,MouseWheelListenerContainer
public class Layer
extends Object
implements KeyListenerContainer, MouseClickListenerContainer, MouseWheelListenerContainer, FrameUpdateListenerContainer, ActorCreator
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Fügt einen oder mehrereActor
-Objekte der Ebene hinzu.double
int
Gibt die Position des Layers aus.getScene()
getVisibleArea
(Vector gameSizeInPixels) Gibt die derzeit auf dem Bildschirm sichtbare Fläche des Layers an.Gibt denWorldHandler
dieser Ebene aus.boolean
Gibt an, ob dieses Layer gerade sichtbar ist.final void
Entferne einen oder mehrereActor
-Objekte aus der Ebene.void
render
(Graphics2D g, Camera camera, int width, int height) void
setGravity
(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.void
setGravity
(Vector gravity) Setzt die Schwerkraft als Vektor, die auf alle Objekte innerhalb dieser Ebene wirkt.void
Setzt die Schwerkraft die auf der Erde wirkt: 9.81 [N] bzw.void
setLayerPosition
(int position) Setzt die Position dieses Layers relativ zu anderen Layers.void
setParallaxPosition
(double parallaxX, double parallaxY) Setzt den Parallaxenwert der Bewegung für dieses Layer:1
ist keine Parallaxe (Bewegung exakt mit der Kamera) Werte zwischen0
und1
schaffen einen entfernten Effekt: Die Bewegung ist weniger als die der Kamera0
bedeutet, die Bewegung der Kamera hat gar keinen Einfluss auf das Layer. Negative Werte sorgen für Bewegung entgegen der Kamera Werte> 1
verstärken die Bewegung der Kamera (z.B.void
setParallaxRotation
(double parallaxRotation) Setzt die Parallaxe der Rotation.void
setParallaxZoom
(double parallaxZoom) Setzt den Parallaxenwert beim Zoom für dieses Layer: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.void
setTimeDistort
(double timeDistort) Setzt einen Zeitverzerrungsfaktor.void
setVisible
(boolean visible) Setzt, ob dieses Layer sichtbar sein soll.void
setVisibleHeight
(double height, Vector gameSizeInPixels) Setzt den Kamerazoom exakt, sodass die sichtbare Höhe des sichtbaren Fensters einer bestimmten Länge entspricht.void
setVisibleWidth
(double width, Vector gameSizeInPixels) Setzt den Kamerazoom exakt, sodass die sichtbare Breite des sichtbaren Fensters einer bestimmten Länge entspricht.void
step
(double deltaSeconds) 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, wait
Methods inherited from interface rocks.friedrich.engine_omega.actor.ActorCreator
createCircle, createCircle, createCircle, createRectangle, createRectangle, createRectangle, createRegularPolygon, createRegularPolygon, createRegularPolygon, createRegularPolygon, createText, createText, createText, createTriangle, createTriangle, createTriangle
Methods inherited from interface rocks.friedrich.engine_omega.event.FrameUpdateListenerContainer
addFrameUpdateListener, defer, delay, removeFrameUpdateListener, repeat
Methods inherited from interface rocks.friedrich.engine_omega.event.KeyListenerContainer
addKeyListener, removeKeyListener
Methods inherited from interface rocks.friedrich.engine_omega.event.MouseClickListenerContainer
addMouseClickListener, removeMouseClickListener
Methods inherited from interface rocks.friedrich.engine_omega.event.MouseWheelListenerContainer
addMouseWheelListener, removeMouseWheelListener
-
Constructor Details
-
Layer
Erstellt ein neues Layer.
-
-
Method Details
-
getParent
-
getScene
- Specified by:
getScene
in interfaceActorCreator
-
setLayerPosition
Setzt die Position dieses Layers relativ zu anderen Layers.- Parameters:
position
- Die neue Position dieses Layers. Je höher dieser Wert, desto weiter vorne ist das Layer.
-
getLayerPosition
Gibt die Position des Layers aus.- Returns:
- Der Wert, der die Position dieses Layers repräsentiert.
- See Also:
-
setParallaxPosition
Setzt den Parallaxenwert der Bewegung für dieses Layer:1
ist keine Parallaxe (Bewegung exakt mit der Kamera)- Werte zwischen
0
und1
schaffen einen entfernten Effekt: Die Bewegung ist weniger als die der Kamera 0
bedeutet, die Bewegung der Kamera hat gar keinen Einfluss auf das Layer.- Negative Werte sorgen für Bewegung entgegen der Kamera
- Werte
> 1
verstärken die Bewegung der Kamera (z.B. für Vordergrund).
- Parameters:
parallaxX
- Der X-Parallaxenwert.parallaxY
- Der Y-Parallaxenwert.
-
setParallaxZoom
Setzt den Parallaxenwert beim Zoom für dieses Layer: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. Dieses Layer wird um[kamerarotation] * parallaxRotation
rotiert.- 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
>1
lassen die Zeit schneller vergehen - Werte
<1
lassen die Zeit langsamer vergehen 1
lässt die Zeit in Echtzeit vergehen- Werte
<=0
sind 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:
-
setVisible
Setzt, ob dieses Layer sichtbar sein soll.- Parameters:
visible
-true
: Das Layer ist sichtbar, wenn es an einer Szene angemeldet ist.false
: Das Layer 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
: Das Layer ist sichtbar.false
: Das Layer 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, Y-Achse ist
umgekehrt), der mit der aktuellen Kameraeinstellung dem
angegebenen
worldPoint
entspricht
-
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
-
render
-
getWorldHandler
Gibt denWorldHandler
dieser Ebene aus.- Returns:
- Der
WorldHandler
dieser Ebene.
-
step
-
getKeyListeners
- Specified by:
getKeyListeners
in interfaceKeyListenerContainer
-
getMouseClickListeners
- Specified by:
getMouseClickListeners
in interfaceMouseClickListenerContainer
-
getMouseWheelListeners
- Specified by:
getMouseWheelListeners
in interfaceMouseWheelListenerContainer
-
getFrameUpdateListeners
- Specified by:
getFrameUpdateListeners
in interfaceFrameUpdateListenerContainer
- Returns:
- Liste der
FrameUpdateListener
-