En aquest tema, explorarem els conceptes de fricció i rebot, que són fonamentals per a la simulació realista de col·lisions en els videojocs. Aquests conceptes permeten que els objectes interactuïn de manera més natural i previsible dins de l'entorn del joc.

  1. Fricció

La fricció és la força que s'oposa al moviment relatiu entre dues superfícies en contacte. En els videojocs, la fricció és crucial per simular moviments realistes, com ara la frenada d'un cotxe o el lliscament d'un personatge sobre una superfície.

Tipus de Fricció

  1. Fricció Estàtica: És la força que impedeix que un objecte comenci a moure's. És més gran que la fricció cinètica.
  2. Fricció Cinètica: És la força que s'oposa al moviment d'un objecte que ja està en moviment.

Fórmules de Fricció

La força de fricció es pot calcular utilitzant les següents fórmules:

  • Fricció Estàtica: \( F_s \leq \mu_s N \)
  • Fricció Cinètica: \( F_k = \mu_k N \)

On:

  • \( F_s \) és la força de fricció estàtica.
  • \( F_k \) és la força de fricció cinètica.
  • \( \mu_s \) és el coeficient de fricció estàtica.
  • \( \mu_k \) és el coeficient de fricció cinètica.
  • \( N \) és la força normal (la força perpendicular a la superfície de contacte).

Implementació en Codi

A continuació, es mostra un exemple de com implementar la fricció en un motor de física senzill:

class Objecte:
    def __init__(self, massa, coef_friccio_estatica, coef_friccio_cinetica):
        self.massa = massa
        self.coef_friccio_estatica = coef_friccio_estatica
        self.coef_friccio_cinetica = coef_friccio_cinetica
        self.velocitat = 0
        self.forca_normal = massa * 9.81  # Suposant gravetat terrestre

    def aplicar_friccio(self):
        if self.velocitat == 0:
            friccio = self.coef_friccio_estatica * self.forca_normal
        else:
            friccio = self.coef_friccio_cinetica * self.forca_normal
        return friccio

# Exemple d'ús
objecte = Objecte(massa=10, coef_friccio_estatica=0.5, coef_friccio_cinetica=0.3)
print(objecte.aplicar_friccio())

  1. Rebot

El rebot és el fenomen que es produeix quan un objecte col·lideix amb una superfície i es desvia en una direcció diferent. La quantitat de rebot es determina pel coeficient de restitució.

Coeficient de Restitució

El coeficient de restitució (\( e \)) mesura l'elasticitat d'una col·lisió entre dos objectes. Es defineix com la relació entre la velocitat relativa després de la col·lisió i la velocitat relativa abans de la col·lisió.

  • \( e = 1 \): Col·lisió perfectament elàstica (sense pèrdua d'energia).
  • \( e = 0 \): Col·lisió perfectament inelàstica (els objectes queden enganxats).

Fórmula del Rebot

La velocitat després de la col·lisió es pot calcular utilitzant:

\[ v' = -e \cdot v \]

On:

  • \( v' \) és la velocitat després de la col·lisió.
  • \( e \) és el coeficient de restitució.
  • \( v \) és la velocitat abans de la col·lisió.

Implementació en Codi

A continuació, es mostra un exemple de com implementar el rebot en un motor de física senzill:

class Objecte:
    def __init__(self, massa, coef_restitucio):
        self.massa = massa
        self.coef_restitucio = coef_restitucio
        self.velocitat = 0

    def aplicar_rebot(self):
        self.velocitat = -self.coef_restitucio * self.velocitat

# Exemple d'ús
objecte = Objecte(massa=10, coef_restitucio=0.8)
objecte.velocitat = 10  # Velocitat abans de la col·lisió
objecte.aplicar_rebot()
print(objecte.velocitat)  # Velocitat després de la col·lisió

Exercicis Pràctics

Exercici 1: Càlcul de la Fricció

  1. Crea una classe Objecte amb atributs per a la massa, coeficients de fricció estàtica i cinètica, i velocitat.
  2. Implementa un mètode aplicar_friccio que calculi la força de fricció segons la velocitat de l'objecte.
  3. Prova el mètode amb diferents valors de massa, coeficients de fricció i velocitat.

Exercici 2: Simulació de Rebot

  1. Crea una classe Objecte amb atributs per a la massa, coeficient de restitució, i velocitat.
  2. Implementa un mètode aplicar_rebot que actualitzi la velocitat de l'objecte després d'una col·lisió.
  3. Prova el mètode amb diferents valors de massa, coeficient de restitució i velocitat inicial.

Resum

En aquesta secció, hem après sobre la fricció i el rebot, dos conceptes fonamentals per a la simulació de col·lisions en els videojocs. Hem vist com calcular la força de fricció i la velocitat després d'una col·lisió, i hem implementat aquests conceptes en codi. Aquests coneixements són essencials per crear interaccions realistes entre objectes dins d'un entorn de joc.

© Copyright 2024. Tots els drets reservats