Package eu.pedu.lib20s.canvasmanager
Class Multimover
java.lang.Object
eu.pedu.lib20s.canvasmanager.Multimover
public class Multimover
extends java.lang.Object
Instance třídy
Multimover
je jedináček sloužící
k přesunu několika grafických objektů zároveň.
Obdobně jako CanvasManager
přijímá prostřednictvím
přesunových metod do správy objekty, kterými pak po plátně pohybuje.
Tyto objekty musí být typu IMovable
. Je-li objekt dokonce typu
IMultimovable
, tak poté, co objekt přesune do zadané cílové pozice,
zavolá jeho metodu IMultimovable.moved()
,
která může provést libovolnou akci (většinou znovu předá
objekt multipřesouvači, aby jej přesunul do další pozice).
Přesouvané objekty, které nebyly dosud zobrazovány, budou jako vedlejší efekt metody přidány mezi zobrazované.
-
Method Summary
Modifier and Type Method Description double
getFrequency()
Vrátí frekvenci překreslování, tj. počet překreslení za sekundu.static Multimover
getInstance()
Vrátí multipřesouvač (jediný existující) s implicitní periodou (50 ms).IMovable[]
getMoved()
Vrátí pole se všemi právě přesouvanými objekty.int
getPeriod()
Vrátí hodnotu periody = počet milisekund, které uplynou mezi dvěma následnými překresleními přesouvaných objektů.boolean
isMoving(IMovable object)
Vrátí informaci o tom, je-li zadaný objekt mezi právě přesouvanými.void
moveInTime(double seconds, IMovable object, int xn, int yn)
Za zadanou dobu přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.void
moveInTime(double seconds, IMovable object, int xn, int yn, java.util.function.Consumer<IMovable> whenMoved)
Za zadanou dobu přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.void
moveInTime(double seconds, IMovable object, Position position)
Za zadanou dobu přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.void
moveInTime(double seconds, IMovable object, Position position, java.util.function.Consumer<IMovable> whenMoved)
Za zadanou dobu přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.void
moveWithSpeed(int speed, IMovable object, int xn, int yn)
Zadanou rychlostí přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.void
moveWithSpeed(int speed, IMovable object, int xn, int yn, java.util.function.Consumer<IMovable> whenMoved)
Zadanou rychlostí přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.void
moveWithSpeed(int speed, IMovable object, Position position)
Zadanou rychlostí přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.void
moveWithSpeed(int speed, IMovable object, Position position, java.util.function.Consumer<IMovable> whenMoved)
Zadanou rychlostí přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.boolean
stop(IMovable object)
Zastaví požadovaný objekt, tj. vyjme jej ze seznamu objektů, s nimiž pohybuje.void
stopAll()
Zastaví veškeré přesuny a zruší všechny plány dalších přesunů.
-
Method Details
-
getInstance
Vrátí multipřesouvač (jediný existující) s implicitní periodou (50 ms).- Returns:
- Požadovaný multipřesouvač
-
getFrequency
public double getFrequency()Vrátí frekvenci překreslování, tj. počet překreslení za sekundu. Frekvence překreslování může být i menší než 1.- Returns:
- Frekvence překreslování.
-
getMoved
Vrátí pole se všemi právě přesouvanými objekty. Vrácený seznam je však platný pouze v době volání. Vzápětí na to mohou být některé objekty dovezeny do svých cílových pozic a mohou seznam "opustit".- Returns:
- Pole právě přesouvaných objektů.
-
getPeriod
public int getPeriod()Vrátí hodnotu periody = počet milisekund, které uplynou mezi dvěma následnými překresleními přesouvaných objektů.- Returns:
- Perioda překreslování v milisekundách.
-
isMoving
Vrátí informaci o tom, je-li zadaný objekt mezi právě přesouvanými.- Parameters:
object
- Objekt, na nějž se ptáme- Returns:
- Byl-li mezi přesouvanými, vrátí
true
, jinak vrátífalse
-
moveInTime
Za zadanou dobu přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.- Parameters:
seconds
- Doba, kterou bude přesun trvat, v sekundáchobject
- Přesouvaný objektposition
- Požadovaná cílové pozice
-
moveInTime
Za zadanou dobu přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.- Parameters:
seconds
- Doba v sekundách, po kterou bude přesun trvatobject
- Přesouvaný objektxn
- Vodorovná souřadnice cílové poziceyn
- Svislá souřadnice cílové pozice
-
moveWithSpeed
Zadanou rychlostí přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.- Parameters:
speed
- Počet bodů, o které se objekt přesune za sekunduobject
- Přesouvaný objektposition
- Požadovaná cílové pozice
-
moveWithSpeed
Zadanou rychlostí přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.- Parameters:
speed
- Počet bodů, o které se objekt přesune za sekunduobject
- Přesouvaný objektxn
- Vodorovná souřadnice cílové poziceyn
- Svislá souřadnice cílové pozice
-
moveInTime
public void moveInTime(double seconds, IMovable object, Position position, java.util.function.Consumer<IMovable> whenMoved)Za zadanou dobu přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.- Parameters:
seconds
- Doba, kterou bude přesun trvat, v sekundáchobject
- Přesouvaný objektposition
- Požadovaná cílové pozicewhenMoved
- Akce, která se má provést po dokončení přesunu
-
moveInTime
public void moveInTime(double seconds, IMovable object, int xn, int yn, java.util.function.Consumer<IMovable> whenMoved)Za zadanou dobu přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.- Parameters:
seconds
- Doba v sekundách, po kterou bude přesun trvatobject
- Přesouvaný objektxn
- Vodorovná souřadnice cílové poziceyn
- Svislá souřadnice cílové pozicewhenMoved
- Akce, která se má provést po dokončení přesunu
-
moveWithSpeed
public void moveWithSpeed(int speed, IMovable object, Position position, java.util.function.Consumer<IMovable> whenMoved)Zadanou rychlostí přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.- Parameters:
speed
- Počet bodů, o které se objekt přesune za sekunduobject
- Přesouvaný objektposition
- Požadovaná cílové pozicewhenMoved
- Akce, která se má provést po dokončení přesunu
-
moveWithSpeed
public void moveWithSpeed(int speed, IMovable object, int xn, int yn, java.util.function.Consumer<IMovable> whenMoved)Zadanou rychlostí přesune zadaný posuvný objekt do zadané cílové pozice, přičemž v případě, že přesouvaný objekt nebyl dosud zobrazován, bude jako vedlejší efekt přidán mezi zobrazované.- Parameters:
speed
- Počet bodů, o které se objekt přesune za sekunduobject
- Přesouvaný objektxn
- Vodorovná souřadnice cílové poziceyn
- Svislá souřadnice cílové pozicewhenMoved
- Akce, která se má provést po dokončení přesunu
-
stop
Zastaví požadovaný objekt, tj. vyjme jej ze seznamu objektů, s nimiž pohybuje. Pro příští rozpohybování tohoto objektu bude potřeba znovu požádat multipřesouvač o jeho přesunutí.- Parameters:
object
- Zastavovaný objekt- Returns:
- Informace o tom, byl-li objekt mezi přesouvanými
-
stopAll
public void stopAll()Zastaví veškeré přesuny a zruší všechny plány dalších přesunů.
-