Setti7 / SVFB-GUI

A python 3.6 program for a fully autonomous fishing bot for Stardew Valley. Work in progress.
MIT License
5 stars 0 forks source link

Simular cliques de forma probabilística, a fim de fazer o retângulo se mover mais naturalmente (suave). #52

Open Setti7 opened 5 years ago

Setti7 commented 5 years ago

Afim de desacelerar o movimento do retângulo verde ao se aproximar do peixe, podemos simular o clique da tecla de ação de acordo com uma função probabilística, que retorna um número entre 0 e 1, ao receber a distância entre os dois..

A função deve receber a distância do centro do retangulo verde até o centro do peixe, e retornar um número entre 0 e 1, representando a probabilidade que deve ser clicado a tecla de ação. Essa probabilidade será a quantidade de vezes que o botão será clicado, em média.

Esse número deverá ser passado para outra função que irá simular o clique da tecla de ação de acordo com a probabilidade. Exemplo:

if random.random() =< click_probability(distance):
    simulate_action_key()
  1. Se a distância entre os 2 forem 0, a função deve retornar 0.5, pois isso fará que o retângulo fique parado com o peixe dentro.

  2. Se a distância for MUITO positiva, ou seja, o peixe estiver MUITO acima do retângulo, o valor retornado deve ser próximo de 1, porém a cada ciclo deve-se diminuir (não linearmente) até que a distância se torne 0, causando a situação 1.

  3. Se a distância for MUITO negativa, ou seja, o retângulo estiver muito acima do peixe, o valor retornado deve ser próximo de 0, mas a cada ciclo deve aumentar, a fim de desacelerar a queda do retângulo à 0, quando eventualmente a distância chegar a 0.

Setti7 commented 5 years ago

Talvez seria interessante considerar a distância entre os dois elementos de forma relativa, sendo 100% quando o peixe estiver no topo e o retângulo no solo, -100% quando o peixe estiver no solo e o retângulo no topo e 0% quando a distância for 0. Assim a aceleração do retângulo não depende do tamanho da tela, não precisando fazer resizing ou hard-coding das distâncias.

Além disso, isso poderia fazer com que a descoberta dessa função probabilística seja mais fácil, pois ela receberá valores fixos entre -1 e 1 e deverá retornar um valor entre 0 e 1