View Full Version : [C#, XNA, fisica, matematica(non lo so)] teoria collisioni, urti elastici
ciao a tutti, sto creando un semplicissimo pong in C# e XNA. Per adesso ho fatto la parte più facile: la pallina e le due racchete sono posizionate sullo schermo e le racchette si muovono su e giu(per adesso entrambe, più avanti ho intenzione di implementare un'ia per giocare contro il pc). Adesso però arriva il bello :D
lasciando perdere il linguaggio e il framework utilizzato, in generale:
come si fa a calcolare dopo una collisione la pallina che direzione prenderà?
mentre se qualcuno ne è a conoscenza, c'è qualche classe xna per le collisioni o altro, che possa essermi utile?
grazie per l'attenzione :)
La soluzione piu` semplice che mi viene in mente e` questa:
Ti bastano due vettori (in XNA sono due Vector2):
V1 = direzione pallina.
V2 = normale al piano della racchetta (punta verso l'altra racchetta).
Fai una semplice riflessione con quei due vettori: http://msdn.microsoft.com/en-gb/library/microsoft.xna.framework.vector2.reflect.aspx
^TiGeRShArK^
11-03-2009, 17:09
La soluzione piu` semplice che mi viene in mente e` questa:
Ti bastano due vettori (in XNA sono due Vector2):
V1 = direzione pallina.
V2 = normale al piano della racchetta (punta verso l'altra racchetta).
Fai una semplice riflessione con quei due vettori: http://msdn.microsoft.com/en-gb/library/microsoft.xna.framework.vector2.reflect.aspx
se vuole fare una cosa fatta bene però dovrebbe calcolare anche la deviazione quando colpisce il bordo della racchetta, o no?
se vuole fare una cosa fatta bene però dovrebbe calcolare anche la deviazione quando colpisce il bordo della racchetta, o no?
diciamo che inizialmente farò le cose più semplici possibile, poi se tutto va bene migliorerò le cose.. :p
se vuole fare una cosa fatta bene però dovrebbe calcolare anche la deviazione quando colpisce il bordo della racchetta, o no?
Non capisco cosa intendi per deviazione, non e` un semplice rimbalzo?
^TiGeRShArK^
12-03-2009, 14:19
Non capisco cosa intendi per deviazione, non e` un semplice rimbalzo?
se la racchetta è un parallelepipedo come nel pong originale e la pallina è una sfera allora non va bene considerare i due vettori ortogonali quando la palla colpisce la racchetta nel bordo perchè non dovrebbe rimbalzare con una riflessione perfetta, ma l'angolo dipende dal punto in cui la sfera colpisce la racchetta.
immagina la palla che scende verso il basso e colpisce la racchetta cosi':
|
|
____
ovviamente la palla non ritorna dritta verso l'alto ma viene deviata di un certo angolo.
Potenzialmente la direzione che prende la pallina potrebbe essere anche quasi orizzontale.....
Volendo puoi ruotare la normale in base alla posizione dove viene colpita la racchetta.
^TiGeRShArK^
13-03-2009, 07:32
Volendo puoi ruotare la normale in base alla posizione dove viene colpita la racchetta.
si appunto...
così ad occhio direi che potrebbe variare con il seno dell'angolo di incidenza...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.