Eu não estou falando sobre a grade de fundo aqui, estou falando sobre as partículas swirly circulando pelos Gravity Wells! Eu sempre gostei do efeito e decidi que seria um experimento divertido replicá-lo. Sei que a GW usa a lei de Hooke em todo o lugar, mas não acho que o efeito Particle-to-Well seja feito com molas. parece uma função ao quadrado da distância.
Aqui está um vídeo demonstrando o efeito: http://www.youtube.com/watch?v=YgJe0YI18Fg
Posso implementar um efeito de mola ou gravidade em algumas partículas, é fácil. Mas não consigo obter o efeito parecido com o efeito GWs. Quando assisto ao efeito no jogo, parece que as partículas são emitidas em cachos do próprio Poço, espiralam para fora em torno do centro do poço e acabam sendo arremessadas para fora, voltando para o poço e repetindo.
Como eu faria as partículas espiralarem para fora quando geradas? Como eu manteria os grupos de partículas juntos quando perto do Poço, mas me afastaria um do outro quando lançados para fora? Como eu manteria as partículas tão fortemente presas ao Poço?
EDIT:
http://www.youtube.com/watch?v=1eEPl8kOXN8 <- Vídeo
https://dl.dropbox.com/u/49283213/gw.gif <- GIF do caminho da partícula
Desativei a randomização no GW para facilitar a visualização do efeito de partícula. Aqui está um vídeo em que você pode ver um dreno azul-verde enviando seu monte de partículas. As partículas vermelhas são das explosões que normalmente aparecem em todo o lugar. Algumas observações que fiz do vídeo:
- As partículas são emitidas do centro (ou próximo do centro) do dreno
- Todas as partículas estão sendo forçadas em um movimento no sentido horário ao redor do centro; portanto, algum tipo de movimento tangencial está sendo aplicado; você pode ver isso facilmente quando as partículas vermelhas da explosão se aproximam do dreno.
fonte
parece-me que o que é desenhado é segmentos, não pontos. Então eu acho que o poço ejeta um ponto do círculo, com uma alta velocidade e um vetor de velocidade tangente ao círculo. E outro ponto é lançado logo depois, que está vinculado ao primeiro a desenhar um segmento. Então eu acho que as leis da física (Newton) são aplicadas com uma forte gravidade, o que explica a diminuição da velocidade. Então, acho que você precisa se integrar a tempo de fazer isso.
com: C o centro do poço, R seu raio.
P1 é o ponto que consideramos
K ser uma constante 'grande' que você escolhe em algumas tentativas (massa do poço).
vel0 é o vetor de velocidade inicial, tangencial ao círculo.
vel0 deve ser alto (faça também os testes)
pos0 a posição inicial, no círculo, no tempo t0.
: d distância entre C e P1
: Vn vetor normal C P1
Inic: A maneira mais fácil de gerar um novo ponto é escolher um ângulo A e, em seguida:
update: para cada iteração você deve calcular:
não é necessário calcular a velocidade.
talvez o jogo use algum tipo de atrito, então a equação seria diferente.
observe que você usa várias vezes cos (A) e pecado (A), então guarde-os.
Portanto, se você gerar muitos pontos vinculados dois a dois e ao mesmo tempo alterar o ângulo inicial A para que a fonte do segmento gire em torno do poço, você se aproxima bastante da solução, eu acho.
Edit: eu acho que você deve tentar isso sem atrito primeiro, pode estar ok. atrito é uma força proporcional à velocidade, mas que inverte a direção do vetor. então a equação se torna:
com força de atrito = - constante * Vel. isso eu não sei como integrar, então eu iria para uma integração passo a passo:
Haverá um problema de estabilidade numérica, mas como o tempo de vida das partículas é curto, isso não deve ser um problema.
fonte
Finalmente consegui, uma replicação satisfatória do comportamento das partículas.
http://www.openprocessing.org/sketch/73624
O efeito é um efeito de gravidade padrão com uma torção, quando as partículas atingem um determinado intervalo uma força é aplicada na tangente normal. isso faz com que as partículas "orbitam" de uma maneira bastante instável. As partículas no desenho de processamento não queimam, mas no ápice de sua órbita é quando elas queimam e outro grupo é liberado. Obrigado a todos pela ajuda, mesmo que ela não tenha realmente me fornecido novas informações, é muito importante que você dedique o tempo e o esforço que dedicou às suas respostas. Obrigado novamente!
fonte