Class Layer
java.lang.Object
de.pirckheimer_gymnasium.engine_pi.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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidFügt einen oder mehrereActor-Objekte der Ebene hinzu.doubleintGibt 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 den Parallaxenwert der Bewegung für dieses Layer: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 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.voidsetTimeDistort(double timeDistort) Setzt einen Zeitverzerrungsfaktor.voidsetVisible(boolean visible) Setzt, ob dieses Layer 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 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, waitMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.actor.ActorCreator
createCircle, createCircle, createCircle, createRectangle, createRectangle, createRectangle, createRegularPolygon, createRegularPolygon, createRegularPolygon, createRegularPolygon, createText, createText, createText, createTriangle, createTriangle, createTriangleMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.FrameUpdateListenerContainer
addFrameUpdateListener, defer, delay, removeFrameUpdateListener, repeatMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.KeyListenerContainer
addKeyListener, removeKeyListenerMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.MouseClickListenerContainer
addMouseClickListener, removeMouseClickListenerMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.MouseWheelListenerContainer
addMouseWheelListener, removeMouseWheelListener
-
Constructor Details
-
Layer
Erstellt ein neues Layer.
-
-
Method Details
-
getParent
-
getScene
- Specified by:
getScenein 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: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-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] * 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:
-
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
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
-
render
-
getWorldHandler
Gibt denWorldHandlerdieser Ebene aus.- Returns:
- Der
WorldHandlerdieser Ebene.
-
step
-
getKeyListeners
- Specified by:
getKeyListenersin interfaceKeyListenerContainer
-
getMouseClickListeners
- Specified by:
getMouseClickListenersin interfaceMouseClickListenerContainer
-
getMouseWheelListeners
- Specified by:
getMouseWheelListenersin interfaceMouseWheelListenerContainer
-
getFrameUpdateListeners
- Specified by:
getFrameUpdateListenersin interfaceFrameUpdateListenerContainer- Returns:
- Liste der
FrameUpdateListener
-