cerca
Giochino del Sottomarino
modifica cronologia stampa login logout

Wiki

Tools

Categorie

Help

edit SideBar

Giochino del Sottomarino

<< 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