Package model.objects.bobbles
Class BubbleManagerModel
java.lang.Object
model.objects.bobbles.BubbleManagerModel
Questa classe gestisce la logica delle bolle, inclusi gli aggiornamenti e la creazione di bolle,
effetti speciali e interazioni con il giocatore e i nemici.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ArrayList
<BobBubbleModel> La lista delle bolle di Bob attive nel gioco.private ArrayList
<BubbleModel> La lista delle bolle attive nel gioco.Mappa che tiene traccia degli estensioni dei potenziamenti attivi.La lista dei modelli di fuoco attivi nel gioco.private boolean
Indica se il giocatore è stato intrappolato dall'acqua.private static BubbleManagerModel
L'istanza singleton della classe BubbleManagerModel.private ArrayList
<LightningModel> La lista dei modelli di fulmine attivi nel gioco.private boolean
Indica se il giocatore si trova su un tappeto di fuoco.private Random
Generatore casuale utilizzato per spawnare bolle casualmente.private int
Il punteggio guadagnato per ogni bolla esplosa.(package private) int
Durata tra lo spawn di una bolla e un'altra.(package private) int
Contatore per il tempo trascorso dall'ultimo spawn di una bolla. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
Costruttore privato per inizializzare le variabili della classe. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addBobBubbles
(BobBubbleModel bobBubble) private void
bobBubblesRandomMovements
(Random random, BobBubbleModel bubble1, BobBubbleModel bubble2) Quando due bolle si toccano le fa muovere in modo randomprivate void
Controlla se ci sono collisioni tra le bolle.private void
checkEnemyHasBeenHit
(BobBubbleModel bubble) Controlla se un nemico è stato colpito da una bolla di Bob, e in tal caso lo intappola in una bolla.private void
Controlla se attivare extend e incrementa le vite del giocatore.private void
checkIfWaterfallHitAnEnemy
(int i, ArrayList<WaterModel> waterfallArray, WaterModel currentWater, ArrayList<EnemyModel> enemies) Controlla se una cascata d'acqua ha colpito un nemico.private void
checkIfWaterfallHitAPlayer
(WaterModel currentWater, ArrayList<WaterModel> waterfallArray) Controlla se una cascata d'acqua ha colpito il giocatore.private void
checkIfWaterFellOffTheMap
(WaterModel waterModel) Controlla se l'acqua è uscita dalla mappa.void
checkIntersects
(BubbleModel bubble) Controlla le intersezioni della bolla con il player e con le altre bolle per farle scoppiare tutte insiemeprivate void
checkIntersectsFireCarpet
(FireModel fireModel) Controlla se il player ha toccato del fuoco, lo rallenta se succedeprivate void
Controlla se una bolla di Bob ha generato un fulmine dopo il pickup di un potenziamento.private void
checkObjectHitEnemy
(CustomObjectModel objectModel) Controlla se un fulmine o il fuoco hanno colpito un nemico.private void
checkPlayerHit
(BubbleModel bubble) Controlla se un giocatore è stato colpito da una bolla.private void
checkWhichBubbleCanSpawn
(int[] excludedFromSpawningBubbles) Genera le bolle speciali in base al livello in cui ci troviamoprivate void
Crea un tappeto di fuoco, a seguito dello scoppio della bolla di fuoco.private void
Crea e aggiorna una cascata d'acqua associata a una bolla.private boolean
Controlla se il pavimento non ha buchigetFires()
static BubbleManagerModel
Restituisce l'istanza singleton della classe BubbleManagerModel.private Rectangle2D.Float
private void
handleSuperDrunkLives
(SuperDrunkModel superDrunk, LightningModel lightningModel) Gestisce la logica delle vite del boss SuperDrunk se colpito da un fulmine.private boolean
Controlla se il player sta toccando una bolla con la testavoid
Resetta tutti gli array delle bolle e degli oggetti associativoid
setScoreForPop
(int value) void
update()
Aggiorna lo stato delle bolle e gestisce le interazioni.private void
Aggiorna lo stato delle bolle di Bob.private void
Aggiorna lo stato delle bolle attive e della cascata d'acqua.private void
Aggiorna le bolle esplose e gestisce gli effetti del fuoco e del fulmine.private void
Fa lo spawn casuale delle bolle speciali (acqua, fuoco, fulmini, EXTEND)
-
Field Details
-
instance
L'istanza singleton della classe BubbleManagerModel. -
bobBubbles
La lista delle bolle di Bob attive nel gioco. -
bubbles
La lista delle bolle attive nel gioco. -
fires
-
lightnings
La lista dei modelli di fulmine attivi nel gioco. -
rand
Generatore casuale utilizzato per spawnare bolle casualmente. -
spawnBubbleTick
int spawnBubbleTickContatore per il tempo trascorso dall'ultimo spawn di una bolla. -
spawnBubbleDuration
int spawnBubbleDurationDurata tra lo spawn di una bolla e un'altra. -
scoreForPop
private int scoreForPopIl punteggio guadagnato per ogni bolla esplosa. -
extend
-
generalTrappedPlayer
private boolean generalTrappedPlayerIndica se il giocatore è stato intrappolato dall'acqua. -
playerInTheFireCarpet
private boolean playerInTheFireCarpetIndica se il giocatore si trova su un tappeto di fuoco.
-
-
Constructor Details
-
BubbleManagerModel
private BubbleManagerModel()Costruttore privato per inizializzare le variabili della classe.
-
-
Method Details
-
getInstance
Restituisce l'istanza singleton della classe BubbleManagerModel.- Returns:
- L'istanza singleton di BubbleManagerModel.
-
update
public void update()Aggiorna lo stato delle bolle e gestisce le interazioni. -
checkExtend
private void checkExtend()Controlla se attivare extend e incrementa le vite del giocatore. -
updateExplodedBubbles
private void updateExplodedBubbles()Aggiorna le bolle esplose e gestisce gli effetti del fuoco e del fulmine. -
checkObjectHitEnemy
Controlla se un fulmine o il fuoco hanno colpito un nemico.- Parameters:
objectModel
- L'oggetto da controllare.
-
handleSuperDrunkLives
Gestisce la logica delle vite del boss SuperDrunk se colpito da un fulmine.- Parameters:
superDrunk
- Il nemico SuperDrunk colpito.lightningModel
- Il fulmine che ha colpito il nemico.
-
updateBubbles
private void updateBubbles()Aggiorna lo stato delle bolle attive e della cascata d'acqua. -
createWaterfallAndUpdateIt
Crea e aggiorna una cascata d'acqua associata a una bolla.- Parameters:
bubble
- La bolla da controllare.
-
checkIfWaterFellOffTheMap
Controlla se l'acqua è uscita dalla mappa.- Parameters:
waterModel
- Il modello dell'acqua da controllare.
-
checkIfWaterfallHitAPlayer
private void checkIfWaterfallHitAPlayer(WaterModel currentWater, ArrayList<WaterModel> waterfallArray) Controlla se una cascata d'acqua ha colpito il giocatore.- Parameters:
currentWater
- L'acqua corrente da controllare.waterfallArray
- L'array delle cascate d'acqua.
-
checkIfWaterfallHitAnEnemy
private void checkIfWaterfallHitAnEnemy(int i, ArrayList<WaterModel> waterfallArray, WaterModel currentWater, ArrayList<EnemyModel> enemies) Controlla se una cascata d'acqua ha colpito un nemico.- Parameters:
i
- Indice della cascata d'acqua.waterfallArray
- L'array delle cascate d'acqua.currentWater
- L'acqua corrente.enemies
- L'elenco dei nemici.
-
updateBobBubble
private void updateBobBubble()Aggiorna lo stato delle bolle di Bob. -
checkLightingBubbleSpawnAfterPowerUpPickup
Controlla se una bolla di Bob ha generato un fulmine dopo il pickup di un potenziamento.- Parameters:
bubble
- La bolla di Bob da controllare.
-
updateRandomBubbleSpawn
private void updateRandomBubbleSpawn()Fa lo spawn casuale delle bolle speciali (acqua, fuoco, fulmini, EXTEND) -
checkWhichBubbleCanSpawn
private void checkWhichBubbleCanSpawn(int[] excludedFromSpawningBubbles) Genera le bolle speciali in base al livello in cui ci troviamo- Parameters:
excludedFromSpawningBubbles
- Array che indica quali bolle speciale possono spawnare in base al livello
-
floorDoesNotHaveHoles
private boolean floorDoesNotHaveHoles()Controlla se il pavimento non ha buchi- Returns:
- boolean
-
checkPlayerHit
Controlla se un giocatore è stato colpito da una bolla.- Parameters:
bubble
- La bolla da controllare.
-
checkIntersectsFireCarpet
Controlla se il player ha toccato del fuoco, lo rallenta se succede- Parameters:
fireModel
- il modello del fuoco
-
intersectBubbleFromBelow
private boolean intersectBubbleFromBelow()Controlla se il player sta toccando una bolla con la testa- Returns:
- boolean
-
checkIntersects
Controlla le intersezioni della bolla con il player e con le altre bolle per farle scoppiare tutte insieme- Parameters:
bubble
- la bolla da controllare
-
checkCollisionWithOtherBubbles
Controlla se ci sono collisioni tra le bolle.- Parameters:
bubble1
- La bolla da controllare.
-
checkEnemyHasBeenHit
Controlla se un nemico è stato colpito da una bolla di Bob, e in tal caso lo intappola in una bolla.- Parameters:
bubble
- La bolla di Bob da controllare.
-
createFireCarpet
private void createFireCarpet()Crea un tappeto di fuoco, a seguito dello scoppio della bolla di fuoco. -
bobBubblesRandomMovements
private void bobBubblesRandomMovements(Random random, BobBubbleModel bubble1, BobBubbleModel bubble2) Quando due bolle si toccano le fa muovere in modo random- Parameters:
random
-bubble1
- prima bollabubble2
- seconda bolla
-
resetBubbles
public void resetBubbles()Resetta tutti gli array delle bolle e degli oggetti associati -
addBobBubbles
-
getBobBubbles
-
getBubbles
-
getPlayerHitbox
-
setScoreForPop
public void setScoreForPop(int value) -
getFires
-
getLightnings
-
getExtend
-