cerca
Giochino del Sottomarino
modifica cronologia stampa login logout

Wiki

Tools

Categorie

Help

edit SideBar

Utenti.GiochinoSottomarino-Effetti History

Show minor edits - Show changes to output

Changed lines 12-13 from:
%lframe width = 200px%Attach:sottomarino-premispazio.png|'''Premi spazio'''
to:
%lframe width=200px%Attach:sottomarino-premispazio.png|'''Premi spazio'''
Added lines 15-16:

[[<<]]
Added lines 1-76:
(:title Giochino del Sottomarino:)

<<|[[Giochino Sottomarino]]|>>

%titolo%''':: Giochino del Sottomarino - Effetti coi colori::'''


<<|[[Giochino Sottomarino]]|>>

!!Stato Titolo
%lframe width=200px%Attach:sottomarino-titolo.png|'''Titolo'''
%lframe width = 200px%Attach:sottomarino-premispazio.png|'''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 -> http://it.wikipedia.org/wiki/Hue_Saturation_Brightness]], 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);

<<|[[Giochino Sottomarino]]|>>

----
[[!Guide]]