Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - qualcuno fermi la pallina!!!
Forum - Java - qualcuno fermi la pallina!!!

Avatar
emix0880 (Normal User)
Newbie


Messaggi: 6
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 21:19
Venerdì, 06/06/2008
ciao qualcuno mi può spiegare come funzionano i timer? io devo far fermare la pallina per esempio ogni 2 secondi, e stare ferma tipo un secondo, e poi ripartire.

import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;

/*
Muove un cerchio da sinistra a destra, quando cozza la parete
destra il moto si inverte ecc.
*/

class MuoviCerchio extends Panel implements ActionListener
{

  int raggio;          /* raggio del cerchio */
  int millisec;        /* ogni quanti millisecondi si muove */
  Timer timer;         /* per regolare l'animazione */
  boolean versoDestra; /* da che parte va */
  int x_min;           /* ascissa minima corrente del cerchio */

  public MuoviCerchio (int raggio_cerchio, int velocita)
  {
    raggio = raggio_cerchio;
    millisec = velocita;
    x_min = 0;  /* cerchio appoggiato a parete sinistra */
    versoDestra = true; /* direzione di moto */
    timer = new Timer(millisec,this);
    timer.start();
  }

  /* azione da compiere quando scatta il timer, sposta il cerchio
     e poi invoca il ridisegno */
  public void actionPerformed(ActionEvent e)
  {
    Dimension d = getSize();
    if (versoDestra)
    {  
       if (x_min>(d.width-2*raggio)) /* cozza parete destra */
       {  versoDestra = false;
          x_min--;
       }
       else x_min++;
    }
    else
    {
       if (x_min<=0) /* cozza parete sinistra */
       {  versoDestra = true;
          x_min++;
       }
       else x_min--;
    }
    repaint();
  }

  public void paint(Graphics g)
  {
    super.paint(g);
    Dimension d = getSize();
    g.setColor( Color.blue );
    g.fillArc(x_min, (d.height/2-raggio), 2*raggio, 2*raggio, 0, 360);
  }

  public static void main(String[] args)
  {
     Frame f = new Frame("MuoviCerchio");
     MuoviCerchio pp = new MuoviCerchio(30,50);
     pp.setBackground(Color.white);
     f.add(pp);
     f.setSize(new Dimension(300,100));
     f.setVisible(true);
  }
}


grazie in anticipo.

PM Quote
Avatar
emix0880 (Normal User)
Newbie


Messaggi: 6
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 20:12
Martedì, 10/06/2008
tranquilli non spingete ho gia risolto!!!

Ultima modifica effettuata da emix0880 il 10/06/2008 alle 20:12
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 21:57
Martedì, 10/06/2008
Come hai risolto?


Il mio blog: https://piero.dev
PM Quote