Creare Videogiochi - Game Developer

Versione completa: Aiuto pong rimbalzo palla
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Salve a tutti, buona pasqua, sto cercando di creare pong, ma la mia pila di problemi ha ora come primo elemento, la palla che ha un comportamento insolito (non sarebbe la prima volta con unity2d -_-) allora considerando che la palla ha un physics material con bounciness=1 e friction=0, angular drag del rb a 0, la palla quando inizia il gioco viene spinta via script e rimbalza qua e la come dovrebbe. Quando tuttavia arriva all'angolo in alto o quello in basso scorre rimanendo attaccata ad esso, tuttavia nello script ho inserito:

Codice:
private void OnCollisionEnter2D(Collision2D collision)
   {
       rb.AddForce(new Vector2(0, Random.Range(minYVariation, maxYVariation)));
   }

facendo così che quando collide si muove in alto o in basso con una certa imprevedibilità ma ciò non accade, ripeto quando tocca specificamente i confini in alto e in basso e sono identici agli altri 2 laterali, non me ne riesco a spiegare il motivo [Immagine: 2cpw0o9.png]
Da quello che scrivi le premesse non sono buone. Ti consiglio di studiarti un po' di trigonometria, vettori( spazio bidimensionale) e fisica di base (velocità, accelerazione) oltre a leggerti la documentazione di Unity.

Nello script passi come parametro un vettore 2d dove la componente X vale sempre 0, quindi aggiungi una forza verticale. Inoltre la "pallina" avendo una forma quadrata e friction pari a 0, quando tocca il lato comincia a scivolare.

Secondo il mio parere dovesti usare una fisica completamente custom, mantenere il modulo della velocità costante e variare il vettore velocità in base all'angolo di incidenza. Ti può tornare utile il metodo Vector2.Reflection.