DesmoColo
22-03-2006, 18:14
Ciao a tutti. Avrei bisogno di implementare le collision detection in una applicazione 2d che sto progettando usando le java awt. Cerco di spiegare meglio che posso la mia situazione:
- Ho una classe Window.java che si occupa di creare la finestra. All’interno vi è un metodo render così implementato:
public boolean render (Graphics g){
g.setColor (backgroundColor) ;
g.fillRect (0,0,getWidth(),getHeight()) ;
if(checkVectors == true){
for(int h = 0; h < iterator+1;h++){
g.drawImage(arrayImage[h],attori[h].getX(),attori[h].getY(),this);
}
}
return true ;
}
che si occupa di fare il rendering, cioè disegnare gli attori all’interno della finestra.
- Ho una classe Attore, che al suo interno ha come variabili un oggetto finestra(affinché l’attore possa avere qualche riferimento al mondo in cui si trova), le coordinate X e Y dell’attore all’interno di quella finestra. Sempre all’interno della classe Attore vi sono metodi per accedere e aggiornare le coordinate.
- Ho anche una classe ListenerAttore per la gestione degli eventi: quando viene premuto un tasto freccia vengono così aggiornate le coordinate dell’attore e questo si muove all’interno della finestra.
Vorrei sapere che architettura devo dare alla mia applicazione per la collision detection. Precisamente vorrei che un attore arriva a un margine della finestra si fermasse cioè non andasse oltre.(evitando ovviamente lo sfarfallio che puo generare del rendering). Inoltre vorrei che se vi sono più attori all’interno di una finestra, questi siano in grado di “vedersi” e fare in modo che non si possano sovrapporre.
Spero di essermi spiegato. Prima di interpellare il forum ho cercato qualche aiuto in rete, ma ho trovato vari articoli sul collision detection in 2d e vari esempi, ma non ne ho trovato alcuno che mi possa dare una mano.Se ritenete che sia più comodo per voi che mi aiutate, posso pubblicare il codice di attore e finestra.
Ciao e grazie per ora a tutti!
- Ho una classe Window.java che si occupa di creare la finestra. All’interno vi è un metodo render così implementato:
public boolean render (Graphics g){
g.setColor (backgroundColor) ;
g.fillRect (0,0,getWidth(),getHeight()) ;
if(checkVectors == true){
for(int h = 0; h < iterator+1;h++){
g.drawImage(arrayImage[h],attori[h].getX(),attori[h].getY(),this);
}
}
return true ;
}
che si occupa di fare il rendering, cioè disegnare gli attori all’interno della finestra.
- Ho una classe Attore, che al suo interno ha come variabili un oggetto finestra(affinché l’attore possa avere qualche riferimento al mondo in cui si trova), le coordinate X e Y dell’attore all’interno di quella finestra. Sempre all’interno della classe Attore vi sono metodi per accedere e aggiornare le coordinate.
- Ho anche una classe ListenerAttore per la gestione degli eventi: quando viene premuto un tasto freccia vengono così aggiornate le coordinate dell’attore e questo si muove all’interno della finestra.
Vorrei sapere che architettura devo dare alla mia applicazione per la collision detection. Precisamente vorrei che un attore arriva a un margine della finestra si fermasse cioè non andasse oltre.(evitando ovviamente lo sfarfallio che puo generare del rendering). Inoltre vorrei che se vi sono più attori all’interno di una finestra, questi siano in grado di “vedersi” e fare in modo che non si possano sovrapporre.
Spero di essermi spiegato. Prima di interpellare il forum ho cercato qualche aiuto in rete, ma ho trovato vari articoli sul collision detection in 2d e vari esempi, ma non ne ho trovato alcuno che mi possa dare una mano.Se ritenete che sia più comodo per voi che mi aiutate, posso pubblicare il codice di attore e finestra.
Ciao e grazie per ora a tutti!