Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Simples simulação de queda livre
- * O corpo acelerá conforme a gravidade instruída, até chegar no chão!
- * email@brunodasilva.com
- */
- <canvas style="background-color:black" id='canvas' width=800 height=600></canvas>
- <script>
- cnv = document.getElementById('canvas').getContext('2d')
- cnv.fillStyle="white"
- // representar o tamanho máximo da tela onde movimenta os quadrados
- var w = 800
- var h = 600
- // tempo para cada frame
- var t = 15;
- // Aqui cria as arrays que irão armazenar a posição dos quadrados (importante)
- var y = new Array(100, 0);
- // Aqui representará a velocidade dos nossos quadrados
- dy = 1
- // aceleração da gravidade ao segundo
- g = 10;
- // Chamar função recursiva que vai executar o movimento dos quadrados
- executarMovimento()
- // Criando a função
- function executarMovimento() {
- // Deletar os quadrados já criados
- cnv.clearRect(0,0,w,h)
- // Verificar se o quadrado e sua posição ultrapassaram o limite da área do canvas, representado por H
- // ou seja, checar se o objeto chegou ao chão!
- if(y[1] + dy + 25 > h) {
- // caso passou, parar o movimento
- dy = 0;
- }
- // adicionar a aceleração. No caso é gravidade / 1000 (1 segundo em miléssimos) multiplicado por T. Número de quadros ao segundo!
- dy += g / 1000 * t;
- // Adicionar nova coordenada conforme a velocidade
- y[1] += dy
- // Desenhar o quadrado de 25x25
- cnv.fillRect(20, y[1], 25, 25)
- // Chamar novamente a função para executar o próximo movimento
- setTimeout(executarMovimento, t)
- }
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement