<< Caricamento iniziale | Giochino Sottomarino | >>
:: Giochino del Sottomarino - Effetti coi colori::
<< Caricamento iniziale | Giochino Sottomarino | >>
Stato Titolo
Titolo
Premi spazio
Nello stato del titolo (che aggiungerete voi con il nome StatoTitolo) visualizziamo il titolo del gioco, e la scritta "Premi spazio per iniziare". L'idea è quella di cambiare i colori di queste due immagini per ottenere quegli effetti d'antan che ci piacciono tanto.
Colore di Premi Spazio
Ci servono un colore e degli LFO:
private Color coloreSpazio;
private LFO lfoRed;
private LFO lfoGreen;
private LFO lfoBlue;
coloreSpazio = new Color(1.0f, 1.0f, 1.0f);
lfoRed = new LFO(6.0f, 0.5f, 0.5f);
lfoGreen = new LFO(0.5f, 0.5f, 0.5f);
lfoBlue = new LFO(20.0f, 0.5f, 0.5f);
Nella update aggiorniamo gli LFO, e li usiamo per modificare i tre valori dell'RGB del titolo:
lfoRed.update(delta);
lfoGreen.update(delta);
lfoBlue.update(delta);
coloreSpazio.r = lfoRed.getValue();
coloreSpazio.g = lfoGreen.getValue();
coloreSpazio.b = lfoBlue.getValue();
Nella render sarà così:
spazio.draw(container.getWidth() / 2 - spazio.getWidth() / 2,
600 - container.getHeight() / 2, coloreSpazio);
Semplicino però funziona:)
Colore del titolo
Qui invece vogliamo che il colore percorra tutta la gamma cromatica, ed è proprio un effetto old:) Per ottenere ciò sfruttiamo lo spazio di colore HSB, modificandone la tinta in funzione del tempo.
private Color coloreTitolo;
private Timer timerTitolo;
timerTitolo = new Timer(new Runnable() {
public void run() {
timerTitolo.start();
}
}
, 10000);
In update, sfruttiamo una funzione di Java che converte da HSB a RGB, ricaviamo i valori RGB e li applichiamo al colore:
float valore = (float)timerTitolo.getTempoTrascorso() / (float)timerTitolo.getTempo();
int RGB = java.awt.Color.HSBtoRGB(valore, 1.0f, 1.0f);
coloreTitolo.r = ((RGB >> 16) & 0xFF) / 255.0f;
coloreTitolo.g = ((RGB >> 8) & 0xFF) / 255.0f;
coloreTitolo.b = (RGB & 0xFF) / 255.0f;
E quindi disegniamo:
titolo.draw(container.getWidth() / 2 - titolo.getWidth() / 2,
200 - titolo.getHeight() / 2, coloreTitolo);
<< Caricamento iniziale | Giochino Sottomarino | >>
Guide