PDA

View Full Version : [JAVA] Spiegazione codice


alessia86
23-09-2009, 16:28
Allora..ho trovato qst codice per far rimbalzare una palla da destra verso sinistra toccando gli estremi superiori ed inferiori dello schermo..Fin qui tutto bene..però ci sono alcune cose del codice che mi sono poco chiare:


if(Nc==0){
gravita =(POTENZA-potenzaAttuale)/1.5;

x+=dx;
y+=dy+gravita;



}
else if (Nc==1){
gravita =(POTENZA-potenzaAttuale)*1;

x+=dx;
y+=dy+gravita;

}
else if (Nc==2){
gravita =(POTENZA-potenzaAttuale)*1.5;

x+=dx;


y+=dy+gravita;

}
else if (Nc==3){
gravita =(POTENZA-potenzaAttuale)*2;

x+=dx;

y+=dy+gravita;


}




Nc rappresenta la dimensione della palla(piccola,grande,media)..La potenza viene posta a 100 e la potenzaAttuale inizialmente pure..e man mano viene decrementata di uno..
dy viene impostato a 30..ed y è la posizione iniziale della palla..Ora non ho capito bene il compito di gravita..
Se qualcuno riesce a comprenderla e mi sa dare una mano vi ringrazio!!!
:help:

yorkeiser
23-09-2009, 16:37
y+=dy+gravita;

gravita è una quantità che viene aggiunta a y; aggiungere ad y, nel tuo caso, vuol dire spostare l'oggetto verso il basso (ovvero farlo cadere). Viene valorizzata diversamente in base alla grandezza della palla, suppongo quindi per simulare il fatto che una palla grande (o meglio, di massa maggiore) cada più velocemente di una di minor massa.

alessia86
23-09-2009, 16:58
grazie..:) quindi quando gravita diventa maggiore di zero la palla dovrebbe cadere verso il basso?

yorkeiser
23-09-2009, 17:30
Ma figurati ;)
Quando la somma dy+gravita è maggiore di 0 la palla si muove verso il basso (nella porzione di codice che hai incollato non vedo la definizione di dy).

alessia86
23-09-2009, 17:47
quando la palla cade verso il basso ha un certo lim..appena la palla raggiunge qst limite la dy cambia segno cosi da far andare poi la palla in alto..Solo che la palla si ferma prima di raggiungere il bordo superiore e qst dipende sempre dalla sua dimensione(la palla grande tocca il bordo,quella media non arriva al bordo superiore ma arriva un pò più giu della grande,e cosi via..) qst non ho capito cpome fa a gestirlo..sempre con la gravita?

alessia86
27-09-2009, 16:37
y+=dy+gravita;

gravita è una quantità che viene aggiunta a y; aggiungere ad y, nel tuo caso, vuol dire spostare l'oggetto verso il basso (ovvero farlo cadere). Viene valorizzata diversamente in base alla grandezza della palla, suppongo quindi per simulare il fatto che una palla grande (o meglio, di massa maggiore) cada più velocemente di una di minor massa.


gravita però serve anche per la palla in salita..in quanto la dy viene cambiata di segno non appena si tocchi il bordo inferiore dello schermo e la potenzaAttuale viene riportata di nuovo al suo valore iniziale(100)..
l'unica cosa che ho notato è che se non metto gravita le palline avranno rimbalzeranno tutte fino ad una certa altezza..mentre cosi' quelle più grandi rimbalzano fino ad una altezza maggiore rispetto a quelle più piccole...

Quello che però non mi è chiaro...perchè utilizzare proprio qst formula per gravita:


gravita=(potenza-potenzaAttuale)*1.5; //ad es 1.5



:help:

Gold
28-09-2009, 18:22
suppongo quindi per simulare il fatto che una palla grande (o meglio, di massa maggiore) cada più velocemente di una di minor massa.

OMMIODDIO!!

zulutown
29-09-2009, 12:48
OMMIODDIO!!

:sofico:

yorkeiser
29-09-2009, 13:02
OMMIODDIO!!

:asd:
Sto parlando di caduta in un sistema reale (ovvero, con l'attrito dell'aria).

zulutown
29-09-2009, 13:32
:asd:
Sto parlando di caduta in un sistema reale (ovvero, con l'attrito dell'aria).

allora devi guardare il coefficiente di "penetrazione" aerodinamica o come cavolo si chiama...

banryu79
29-09-2009, 16:08
allora devi guardare il coefficiente di "penetrazione" aerodinamica o come cavolo si chiama...
Ma lol, la tipa del thread mi pare stia cercando di implementare un gioco tipo Pang! non un simulatore di volo :D

Gold
29-09-2009, 16:40
:asd:
Sto parlando di caduta in un sistema reale (ovvero, con l'attrito dell'aria).

Allora la palla piu' grande cade piu lentamente :p

yorkeiser
29-09-2009, 17:18
Allora la palla piu' grande cade piu lentamente :p

Beh, nell'immaginario collettivo siamo abituati a pensare che un oggetto più pesante cada più velocemente di uno leggero, vedi classico esempio di piuma vs pallina di piombo. Chiaramente, questo non perchè la caduta dipenda dalla massa a livello teorico (o meglio, nel vuoto), ma perchè il tutto dipende dall'interazione tra l'oggetto ed il fluido in cui si muove, quindi entrano in ballo anche diversi altri parametri quali forma e dimensioni geometriche, attrito superficiale e suppongo anche qualcos'altro. Però mi pare siamo un attimino OT, dubito che le formule esposte dall'autrice del thread abbiano qualcosa a che vedere con la fluidodinamica :) Prenditela con l'autore del codice, che fa cadere le palle ( :asd: ) in maniera differente :asd: