quinta-feira, 17 de julho de 2008

Minhocão

Não sou o Maluf, mas fiz um Minhocão também. Saca aquele tipo de boss de jogo de nave que parece uma cobra, com a ponta da nave puxando várias partes móveis separadas? Me inspirei em como fazer isso com um pouco mais de física hoje. O resultado taí:


O ponto amarelo anda numa direção, determinada pelo teclado. O resto segue a cabeça, conforme o esperado :). Melhor que muito jogo retail por aí ;). Agradecimentos ao Dalton pelas dicas que, apesar de serem muita areia pro meu caminhão (tradução: não entendo bolotas de física), me levaram a fazer o código.

Uma explicação rápida e rasteira. Como apenas a cabeça (ponto amarelo) se move, fazer o resto do corpo andar é resolvido "por partes", do segundo ao último nó. Todos eles seguem uma restrição física bem simples, a distância entre os nós é fixa. Assim, ao fazer a cabeça andar, basta calcular a posição do segundo nó. Calculado ele, passamos para o terceiro e assim por diante. Em resumo, exceto pelo primeiro nó, a posição de um nó é relativa ao nó anterior.

Para calcular a posição relativa, basta calcular o ângulo formado pelo nó anterior (nova posição) com o nó atual (que está na velha posição). Aí é só "puxar" o nó atual nesta direção. Basta usar a relação de triângulo retângulo e calcular, a partir do nó anterior, a posição do nó atual com o ângulo e a distância. Faz isso do segundo nó para o último e o Minhocão vai que é uma beleza :).

Um comentário:

Bruno Sanches disse...

Show! Quando vai rolar um demo para o s amigos?