Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-02-2005, 18:15   #1
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
[JAVA] striscie impazzite :(

salve a tutti, mi servirebbe una mano. In quest'applet invece di creare un animazione di punti che si muovono in direzioni casuali, mi crea delle striscie....
sto impazzendo AIUTO
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2005, 18:43   #2
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
Mi sono dimenticato il codice...sono impazzito

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
import java.util.Random;
import javax.swing.*;
import java.util.ArrayList;

public class CatchForms extends JApplet
{

private final int AMPIEZZA_CAS = 10;

/*altezza dell'applet*/
private final int ALTEZZA = 400;

/*larghezza dell'applet*/
private final int LARGHEZZA = 400;

/*ritardo impostato nel clock*/
private final int DELAY = 500;

/*direzioni consentite*/
private final int NORD = 0;

private final int NORD_EST = 1;

private final int EST = 2;

private final int SUD_EST = 3;

private final int SUD = 4;

private final int SUD_OVEST = 5;

private final int OVEST = 6;

private final int NORD_OVEST = 7;

/*flag per far partire il gioco*/
private boolean inizioFlag;

/*numero di forme presenti nell applet*/
private int NUMERO_FORME;

//timer che verrà usato per generare il movimento
private Timer timerAnimazione;

/*array in cui ad ogni indice corrisponde una forma*/
private int[] direzione;

private ArrayList<Point> oggetti;



/**
* Richiamato dal browser o dall'appletviewer per informare il JApplet che
* è stato caricato nel sistema. E' sempre richiamato prima che il metodo
* start sia richiamato per la prima volta.
*/
public void init()
{


/*imposta la dimensiona dell'applet*/
setSize(ALTEZZA, LARGHEZZA);

/*imposta il colore dello sfondo*/
setBackground(Color.black);

/*crea un generatore di numeri casuali*/
Random genera = new Random();

/*imposta la flag per la partenza del gioco a false*/
inizioFlag = false;

/*crea un oggetto di tipo Timer*/
timerAnimazione = new Timer (DELAY, new AnimationActionListener() );

/*fai partire il timer*/
timerAnimazione.start();

NUMERO_FORME = 4;

direzione = new int[NUMERO_FORME];

oggetti = new ArrayList<Point> ();


/*crea un ascoltatore di eventi del mouse*/
addMouseListener (new inizioMouseListener () );

/*inizializza le posizioni di ogni forma all'avvio dell'applet*/
for ( int i = 0; i < NUMERO_FORME; i++)
{
oggetti.add (new Point( (10 + i) * AMPIEZZA_CAS, (10 + i) * AMPIEZZA_CAS) );
direzione[i] = Math.abs(genera.nextInt()) % 8;
}

}

/**
* metodo paint dell'applet.
* disegna le figure geometriche nella loro posizione attuale
* @param page l'oggetto Graphics per questo applet
*/
public void paint(Graphics page)
{

if (inizioFlag == true){
int xAux,yAux;
Point puntoAux;

for ( int i = 0; i < oggetti.size (); i++)
{
puntoAux = (Point)oggetti.get (i);
xAux = (int) puntoAux.getX ();
yAux = (int) puntoAux.getY ();

page.setColor(Color.red);
page.fillRect(xAux,yAux,10, 10);
}
}

}


/**
* metodo paint dell'applet.
* disegna le figure geometriche nella loro posizione attuale
* @param page l'oggetto Graphics per questo applet
*/
private class inizioMouseListener implements MouseListener
{

public void mouseEntered (MouseEvent event)
{
inizioFlag = true;
repaint ();
}

public void mousePressed (MouseEvent event) {};
public void mouseClicked (MouseEvent event) {};
public void mouseReleased (MouseEvent event) {};
public void mouseExited (MouseEvent event) {};

}

/**
*classe interna utilizzata per creare l'animazione del movimento delle
*form
*/
private class AnimationActionListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
/*variabile temporanea utilizzata per scambiare le direzioni */
int aux ;

/*per ogni forma modifica la posizione in base alla direzione*/
for ( int i = 0; i < oggetti.size (); i++)
{
int xTemp,yTemp;
Point puntoTemp;
puntoTemp = (Point)oggetti.get (i);
xTemp = (int) puntoTemp.getX ();
yTemp = (int) puntoTemp.getY ();

/*muovi nella direzione scelta*/
switch(direzione[i])
{
case NORD:
{
yTemp -= AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case EST:
{
xTemp += AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case SUD:
{
yTemp += AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case OVEST:
{
xTemp -= AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case NORD_EST:
{
xTemp += AMPIEZZA_CAS;
yTemp += AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case SUD_EST:
{
xTemp += AMPIEZZA_CAS;
yTemp -= AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case SUD_OVEST:
{
xTemp -= AMPIEZZA_CAS;
yTemp -= AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;

case NORD_OVEST:
{
xTemp -= AMPIEZZA_CAS;
yTemp += AMPIEZZA_CAS;
puntoTemp.setLocation(xTemp,yTemp);
}
break;
}

}

repaint();
}


}


}
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2005, 09:06   #3
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
dai aiutatemi! ... ditemi almeno se posso udsare gli arraylist o se con questi arraylist non fa
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2005, 10:21   #4
end.is.forever
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 1578
Vedi delle "linee" perchè non ridisegni lo sfondo e ogni volta aggiungi i punti senza cancellare quelli del frame precedente; questo succede perchè estendi JApplet, la quale ridefinisce il metodo update di Component eliminando il ridisegno del background.

Una prima soluzione molto semplice è cambiare
Codice:
public class CatchForms extends JApplet
con
Codice:
public class CatchForms extends Applet
e vedi che non hai più il problema.

Se invece ti serve che sia una JApplet puoi ridefinire update aggiungendo questo
Codice:
    public void update( Graphics page )
    {
        page.setColor( getBackground() );
        page.fillRect( 0 , 0 , page.getClipBounds().width , page.getClipBounds().height );
        page.setColor( getForeground() );
        paint( page );
    }
anche così funziona; non so quale dei due sia più efficiente però perchè non conosco bene JApplet, forse c'è un modo per fargli ridisegnare il background senza dover ridefinire il metodo.
end.is.forever è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2005, 10:37   #5
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
end.is.forever: GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE 10000000000000000000000
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Virtua Fighter è tornato e non &e...
Il ritorno di Fumito Ueda, autore di Sha...
Cooler Master svela GPU Shield, la nuova...
Samsung Galaxy S27 Pro: sarà lui ...
Così Google ha ottimizzato Chrome...
Xiaomi non cambia idea: il display poste...
LG presenta in Italia le gamme TV Micro ...
Sette anni dopo l'annuncio, The Wolf Amo...
'Non avrete aumenti': la decisione shock...
TIM lancia il Pass Mondiali DAZN: 104 pa...
Tesla Roadster, promessa o miraggio? La ...
Mark Hamilton, la tavola periodica del m...
Hanger 13 annuncia Uomo d'Onore: espansi...
La battaglia delle HBM4 entra nel vivo: ...
Dopo 12 anni torna Alien: Isolation. Ecc...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:00.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v