Package model.utilz
Class Gravity
java.lang.Object
model.utilz.Gravity
Classe che gestisce la gravità e le collisioni con il livello.
Fornisce metodi per determinare se un'entità può muoversi in una posizione,
controllare la solidità dei blocchi e calcolare le posizioni delle entità
in relazione a muri e pavimenti.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
canMoveHere
(float x, float y, float width, float height, int[][] lvlData) Determina se un'entità può muoversi in una posizione specifica.static float
getEntityXPosNextToWall
(Rectangle2D.Float hitbox, float xSpeed) Calcola la posizione x di un'entità accanto a un muro.static float
getEntityYPosUnderRoofOrAboveFloor
(Rectangle2D.Float hitbox, float airSpeed) Calcola la posizione y di un'entità sotto un tetto o sopra un pavimento.static boolean
isEntityOnFloor
(Rectangle2D.Float hitbox, int[][] lvlData) Controlla se un'entità si trova sul pavimento.private static boolean
isSolid
(float x, float y, int[][] lvlData) Controlla se una posizione specifica è solida nel livello.static boolean
isTileSolid
(int xTile, int yTile, int[][] lvlData) Controlla se un blocco specifico è solido.
-
Constructor Details
-
Gravity
public Gravity()
-
-
Method Details
-
canMoveHere
public static boolean canMoveHere(float x, float y, float width, float height, int[][] lvlData) Determina se un'entità può muoversi in una posizione specifica.- Parameters:
x
- Coordinata x dell'entità.y
- Coordinata y dell'entità.width
- Larghezza dell'entità.height
- Altezza dell'entità.lvlData
- Dati del livello, rappresentati come una matrice di interi.- Returns:
- true se l'entità può muoversi, false altrimenti.
-
isSolid
private static boolean isSolid(float x, float y, int[][] lvlData) Controlla se una posizione specifica è solida nel livello.- Parameters:
x
- Coordinata x della posizione da controllare.y
- Coordinata y della posizione da controllare.lvlData
- Dati del livello, rappresentati come una matrice di interi.- Returns:
- true se la posizione è solida, false altrimenti.
-
isTileSolid
public static boolean isTileSolid(int xTile, int yTile, int[][] lvlData) Controlla se un blocco specifico è solido.- Parameters:
xTile
- Indice x del blocco.yTile
- Indice y del blocco.lvlData
- Dati del livello, rappresentati come una matrice di interi.- Returns:
- true se il blocco è solido, false altrimenti.
-
getEntityXPosNextToWall
Calcola la posizione x di un'entità accanto a un muro.- Parameters:
hitbox
- Hitbox dell'entità come rettangolo.xSpeed
- Velocità in direzione x dell'entità.- Returns:
- La nuova posizione x dell'entità accanto al muro.
-
getEntityYPosUnderRoofOrAboveFloor
Calcola la posizione y di un'entità sotto un tetto o sopra un pavimento.- Parameters:
hitbox
- Hitbox dell'entità come rettangolo.airSpeed
- Velocità in direzione y dell'entità.- Returns:
- La nuova posizione y dell'entità sotto un tetto o sopra un pavimento.
-
isEntityOnFloor
Controlla se un'entità si trova sul pavimento.- Parameters:
hitbox
- Hitbox dell'entità come rettangolo.lvlData
- Dati del livello, rappresentati come una matrice di interi.- Returns:
- true se l'entità si trova sul pavimento, false altrimenti.
-