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 booleanIndica se il giocatore è stato intrappolato dall'acqua.private static BubbleManagerModelL'istanza singleton della classe BubbleManagerModel.private ArrayList<LightningModel> La lista dei modelli di fulmine attivi nel gioco.private booleanIndica se il giocatore si trova su un tappeto di fuoco.private RandomGeneratore casuale utilizzato per spawnare bolle casualmente.private intIl punteggio guadagnato per ogni bolla esplosa.(package private) intDurata tra lo spawn di una bolla e un'altra.(package private) intContatore per il tempo trascorso dall'ultimo spawn di una bolla. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateCostruttore privato per inizializzare le variabili della classe. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBobBubbles(BobBubbleModel bobBubble) private voidbobBubblesRandomMovements(Random random, BobBubbleModel bubble1, BobBubbleModel bubble2) Quando due bolle si toccano le fa muovere in modo randomprivate voidControlla se ci sono collisioni tra le bolle.private voidcheckEnemyHasBeenHit(BobBubbleModel bubble) Controlla se un nemico è stato colpito da una bolla di Bob, e in tal caso lo intappola in una bolla.private voidControlla se attivare extend e incrementa le vite del giocatore.private voidcheckIfWaterfallHitAnEnemy(int i, ArrayList<WaterModel> waterfallArray, WaterModel currentWater, ArrayList<EnemyModel> enemies) Controlla se una cascata d'acqua ha colpito un nemico.private voidcheckIfWaterfallHitAPlayer(WaterModel currentWater, ArrayList<WaterModel> waterfallArray) Controlla se una cascata d'acqua ha colpito il giocatore.private voidcheckIfWaterFellOffTheMap(WaterModel waterModel) Controlla se l'acqua è uscita dalla mappa.voidcheckIntersects(BubbleModel bubble) Controlla le intersezioni della bolla con il player e con le altre bolle per farle scoppiare tutte insiemeprivate voidcheckIntersectsFireCarpet(FireModel fireModel) Controlla se il player ha toccato del fuoco, lo rallenta se succedeprivate voidControlla se una bolla di Bob ha generato un fulmine dopo il pickup di un potenziamento.private voidcheckObjectHitEnemy(CustomObjectModel objectModel) Controlla se un fulmine o il fuoco hanno colpito un nemico.private voidcheckPlayerHit(BubbleModel bubble) Controlla se un giocatore è stato colpito da una bolla.private voidcheckWhichBubbleCanSpawn(int[] excludedFromSpawningBubbles) Genera le bolle speciali in base al livello in cui ci troviamoprivate voidCrea un tappeto di fuoco, a seguito dello scoppio della bolla di fuoco.private voidCrea e aggiorna una cascata d'acqua associata a una bolla.private booleanControlla se il pavimento non ha buchigetFires()static BubbleManagerModelRestituisce l'istanza singleton della classe BubbleManagerModel.private Rectangle2D.Floatprivate voidhandleSuperDrunkLives(SuperDrunkModel superDrunk, LightningModel lightningModel) Gestisce la logica delle vite del boss SuperDrunk se colpito da un fulmine.private booleanControlla se il player sta toccando una bolla con la testavoidResetta tutti gli array delle bolle e degli oggetti associativoidsetScoreForPop(int value) voidupdate()Aggiorna lo stato delle bolle e gestisce le interazioni.private voidAggiorna lo stato delle bolle di Bob.private voidAggiorna lo stato delle bolle attive e della cascata d'acqua.private voidAggiorna le bolle esplose e gestisce gli effetti del fuoco e del fulmine.private voidFa 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
-