-
Notifications
You must be signed in to change notification settings - Fork 7
Potential Field Point Field
Eduardo Makita edited this page Mar 21, 2023
·
4 revisions
Campo Potencial de Ponto
Parâmetro | Função |
---|---|
target | Centro do campo potencial (x, y), pode ser uma função dinâmica, em metros. |
decay | Função matemática que determinará o decaimento da velocidade máxima até zero, deve ter domínio e imagem entre [0, 1]. |
radius | Raio onde a função decay será aplicada, em metros. |
radius_max | Raio máximo onde o campo ira operar, pode ser nulo, se for nulo o campo funciona com força total em todo o jogo exceto dentro do radius, em metros. |
multiplier | Velocidade máxima desse comportamento, em m/s. |
field_limits | Aplica as dimensoes do campo, caso você deseje que a função não funcione fora do campo (por exemplo, dentro dos gols). |
self.field.add_field(
PointField(
self.match,
target = (0.75, 0.65),
radius = 0.05, # 5 cm
decay = lambda x: 1, # não há decaimento
field_limits = [0.75*2 , 0.65*2],
multiplier = 1.2 # 120 cm/s
)
)
"""
lambda x: 1 é semelhante a
def func(x):
return 1
"""
-
self.field.add_field( PointField( self.match, target = (0.75, 0.65), radius = 0.1, # 10 cm decay = lambda x: x**2, # decaimento exponencial field_limits = [0.75*2 , 0.65*2], multiplier = 0.5 # 50 cm/s ) ) """ lambda x: x**2 é semelhante a def func(x): return x**2 """
self.field.add_field(
PointField(
self.match,
target = (0.75, 0.65),
radius = 0.3, # 30 cm
decay = lambda x: x**2, # decaimento exponencial
field_limits = [0.75*2 , 0.65*2],
multiplier = 0.5 # 50 cm/s
)
)
self.field.add_field(
PointField(
self.match,
target = (0.75, 0.65),
radius = 0.3, # 30 cm
radius = 0.5, # 50 cm
decay = lambda x: x**2, # decaimento exponencial
field_limits = [0.75*2 , 0.65*2],
multiplier = 0.5 # 50 cm/s
)
)
self.field.add_field(
PointField(
self.match,
target = lambda m: (m.ball.x, m.ball.y),
radius = 0.3, # 30 cm
decay = lambda x: x**2, # decaimento exponencial
field_limits = [0.75*2 , 0.65*2],
multiplier = 0.5 # 50 cm/s
)
)
"""
No lambda do target, 'm' representa o objeto match.
"""