Effetti speciali e sviluppo giochi in Java(TM) -Un TextScroller configurabile (TextScroller II)
di Anibal Wainstein (traduzione di Hanami Solutions)
4.2.2 Un TextScroller configurabile (TextScroller II)
Come potreste ricordare, il textscroller
nel Capitolo 3 sfarfallava. Possiamo sistemarlo ora che
conosciamo la tecnica del double buffering. Allo stesso tempo rendiamolo
più configurabile. Cominciamo con l'aggiungere e modificare
alcune variabili prima:
public Thread animationthread = null;
public String message;
public int x=100;
Image bufferimage;
Graphics bufferg;
//I seguenti colori sono inseriti come
//parametri ESADECIMALI e sono usati per
//impostare i colori di sfondo e del testo
//della applet.
Color backgroundcolor,textcolor;
//La variabile "delay" viene usata come
//ritardo per ogni immagine-fotogramma.
int delay=0;
Abbiamo aggiunto alcune variabili per impostare i colori di
sfondo e primo piano. La variabile "delay" deve essere
il ritardo nella animazione, come era nella applet slideshow.
Non dimenticate di copiare e incollare il metodo getIntegerParameter().
Anche il metodo init() richiede un piccolo cambiamento:
public void init()
{
//Leggiamo il messaggio come parametro e allo stesso tempo
//leggeremo un parametro chiamato "delay" per il ritardo
//dell'immagine.
message=getParameter("message");
delay=getIntegerParameter("delay",10);
//Notate che leggiamo i valori in
//forma ESADECIMALE (in base 16)
//e poi creiamo un colore.
backgroundcolor=
new Color(getIntegerParameter("backgroundcolor",16));
textcolor=new Color(getIntegerParameter("textcolor",16));
//Le seguenti righe sono copiate pari pari
//da slideshow2.java
Dimension d=size();
bufferimage=createImage(d.width,d.height);
bufferg=bufferimage.getGraphics();
}
Fate caso che otteniamo i colori per l'applet
tramite il metodo getIntegerParameter() e specificando che
vogliamo leggerli come numeri in base 16, invece che 10.
Facciamo così di modo che i parametri possano essere specificati
in numeri esadecimali dall'utente dell'applet. I parametri potrebbero
a questo punto apparire così:
<APPLET CODE="textscroller2.class" WIDTH=100 HEIGHT=20>
<PARAM name="message"
value="Questo e' textscroller II, ora configurabile">
<PARAM name="backgroundcolor" value="ff0000">
<PARAM name="textcolor" value="0000ff">
<PARAM name="delay" value="50">
</APPLET>
Abbiamo impostato il colore di sfondo a rosso (FF0000) e il
colore del testo a blu (0000FF). Se non siete abituati ai valori esadecimali
dei colori allora forse la seguente tabella può esservi utile:
| Rosso |
FF0000 |
| Verde |
00FF00 |
| Blu |
0000FF |
| Celeste |
00FFFF |
| Giallo |
FFFF00 |
| Magenta |
FF00FF |
| Nero |
000000 |
| Grigio scuro |
7F7F7F |
| Grigio chiaro |
AFAFAF |
| Bianco |
FFFFFF |
| Arancio |
FF7F00 |
| Rosso scuro |
7F0000 |
| Verde scuro |
007F00 |
| Blu scuro |
00007F |
Tutta l'attività di disegno nel metodo paint() va fatta nel
buffer, invece che direttamente nello schermo dell' applet. Quando
è finito, allora il buffer vien mostrato su schermo:
public synchronized void paint(Graphics g)
{
//È sempre bene controllare che
// bufferg sia stato inizializzato.
if (bufferg!=null)
{
//Dipingiamo lo schermo del colore
//di sfondo che ci è stato indicato.
bufferg.setColor(backgroundcolor);
bufferg.fillRect(0,0,100,20);
//Tracciamo il messaggio partendo dalla
//posizione "x".
bufferg.setColor(textcolor);
bufferg.drawString(message,x,12);
g.drawImage(bufferimage,0,0,this);
if (x<-400) x=100;
x--;
}
}
Notate che usiamo le variabili "backgroundcolor"
e "textcolor" per specificare il color di sfondo
e quello del testo della applet. Finalmente apportiamo un piccolo
cambiamento al metodo run() così che il ritardo dei fotogrammi
nella applet sia impostabile:
public void run()
{
while (true)
{
update(getGraphics());
//La variabile "delay" ora rende
//il ritardo configurabile.
try {Thread.sleep(delay);}
catch(InterruptedException e) {}
}
}
Ora l'applet è pronta. Dovete sapere che
la lunghezza del testo è limitata e che le dimensioni dell'applet devono
essere 100x20 pixels. Non ha senso cambiarne le dimensioni
proprio ora, quando non ne potreste comunque controllare le dimensioni del testo.
lo imparerete nel capitolo 6. Clickate
qua per vedere la applet.
Potreste a questo punto sentirvi pronti a lanciare la vostra
azienda Java ed inondare Internet con le vostre applets dopo questo
capitolo. Ve la cavereste anche bene come programmatore di effetti speciali
, ma ci sono ancora dei pezzi mancanti nella vostra preparazione.
Alcuni di questi li esamineremo nel prossimo capitolo che verte sui messaggi
di input dal mouse.
Pagina seguente >>
|