Package ea
Class Layer
java.lang.Object
ea.Layer
- All Implemented Interfaces:
FrameUpdateListenerContainer
,KeyListenerContainer
,MouseClickListenerContainer
,MouseWheelListenerContainer
public class Layer
extends Object
implements KeyListenerContainer, MouseClickListenerContainer, MouseWheelListenerContainer, FrameUpdateListenerContainer
Layer bieten die Möglichkeit,
Actors
vor und hinter der Zeichenebene mit zusätzlichen Eigenschaften
(wie Parallaxe) zu rendern.- Author:
- Michael Andonie
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
float
int
Gibt die Position des Layers aus.ea.internal.Bounds
getVisibleArea
(Vector gameSizeInPixels) Gibt die derzeit auf dem Bildschirm sichtbare Fläche des Layers an.ea.internal.physics.WorldHandler
Gibt den Worldhandler dieses Layers aus.boolean
Gibt an, ob dieses Layer gerade sichtbar ist.final void
void
render
(Graphics2D g, Camera camera, int width, int height) void
setGravity
(Vector gravityInNewton) Setzt die Schwerkraft, die auf alle Objekte innerhalb des Hauptlayers der Scene wirkt.void
setLayerPosition
(int position) Setzt die Position dieses Layers relativ zu anderen Layers.void
setParallaxPosition
(float parallaxX, float 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. für Vordergrund).void
setParallaxRotation
(float parallaxRotation) Setzt die Parallaxe der Rotation.void
setParallaxZoom
(float 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
(float timeDistort) Setzt einen Zeitverzerrungsfaktor.void
setVisible
(boolean visible) Setzt, ob dieses Layer sichtbar sein soll.void
setVisibleHeight
(float height, Vector gameSizeInPixels) Setzt den Kamerazoom exakt, sodass die sichtbare Höhe des sichtbaren Fensters einer bestimmten Länge entspricht.void
setVisibleWidth
(float width, Vector gameSizeInPixels) Setzt den Kamerazoom exakt, sodass die sichtbare Breite des sichtbaren Fensters einer bestimmten Länge entspricht.void
step
(float 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
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface ea.event.FrameUpdateListenerContainer
addFrameUpdateListener, defer, delay, removeFrameUpdateListener, repeat
Methods inherited from interface ea.event.KeyListenerContainer
addKeyListener, removeKeyListener
Methods inherited from interface ea.event.MouseClickListenerContainer
addMouseClickListener, removeMouseClickListener
Methods inherited from interface ea.event.MouseWheelListenerContainer
addMouseWheelListener, removeMouseWheelListener
-
Constructor Details
-
Layer
@API public Layer()Erstellt ein neues Layer.
-
-
Method Details
-
getParent
-
setLayerPosition
@API public void setLayerPosition(int position) 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
@API public int getLayerPosition()Gibt die Position des Layers aus.- Returns:
- Der Wert, der die Position dieses Layers repräsentiert.
- See Also:
-
setParallaxPosition
@API public void setParallaxPosition(float parallaxX, float parallaxY) 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
@API public void setParallaxZoom(float 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.parallaxZoom < 0
: Der Zoomeffekt tritt betragsmäßig ähnlich und umgekehrt auf.
-
setParallaxRotation
@API public void setParallaxRotation(float parallaxRotation) Setzt die Parallaxe der Rotation. Dieses Layer wird um[kamerarotation] * parallaxRotation
rotiert.- Parameters:
parallaxRotation
- Die Rotationsparallaxe.
-
setTimeDistort
@API public void setTimeDistort(float timeDistort) 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, die auf alle Objekte innerhalb des Hauptlayers der Scene wirkt.- Parameters:
gravityInNewton
- Die neue Schwerkraft als Vector. Die Einheit ist [N].
-
setVisible
@API public void setVisible(boolean visible) 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
@API public boolean isVisible()Gibt an, ob dieses Layer gerade sichtbar ist.- Returns:
true
: Das Layer ist sichtbar.false
: Das Layer ist nicht sichtbar.- See Also:
-
add
-
remove
-
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
@API public float calculatePixelPerMeter() -
render
-
getWorldHandler
@Internal public ea.internal.physics.WorldHandler getWorldHandler()Gibt den Worldhandler dieses Layers aus.- Returns:
- Der Worldhandler dieser Ebene.
-
step
@Internal public void step(float deltaSeconds) -
getKeyListeners
- Specified by:
getKeyListeners
in interfaceKeyListenerContainer
-
getMouseClickListeners
- Specified by:
getMouseClickListeners
in interfaceMouseClickListenerContainer
-
getMouseWheelListeners
- Specified by:
getMouseWheelListeners
in interfaceMouseWheelListenerContainer
-
getFrameUpdateListeners
- Specified by:
getFrameUpdateListeners
in interfaceFrameUpdateListenerContainer
-