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