Atividade 4 - Usando MRU em corrida de carros
A ideia da atividade é gerar uma aplicação que simule uma disputa de carros (retângulos) com cores e velocidades diferentes, utilizando MRU (movimento retilíneo uniforme) e mostrando no final o vencedor.
A estrutura final da aplicação é parecido com isto:
A estrutura final da aplicação é parecido com isto:
De início, é necessário criar um vetor de 20 posições que representará a velocidade de cada carro. Na função setup() preenchi o vetor com valores aleatório dentro de um laço for(). Criei também um vetor para guardar as posições verticais dos carros, e o preenchi na função setup() em um intervalo de 30px entre cada carro.
Para calcular o MRU, criei uma função que recebe a velocidade e tempo como parâmetro e retorna o deslocamento (a produto entre eles).
Criei a função carro que recebe a velocidade, a posição y, e o tempo como parâmetro. Chamei a função fill() recebendo valores aleatórios para pintar os carros com cores diferentes. Após chamo a função rect() para desenhar o carro. A função recebe o MRU do carro na posição x, a posição y, e o tamanho que defini como 20x15.
Depois de todas as funções necessárias criadas, criei uma variável para guardar o tempo atual, que é responsável por manter o tempo real da aplicação.
Na função draw() comecei criando duas linhas para representar a linha de partida e a de chegada, e defini o background como branco. Após isso criei um laço for() que é executado 20 vezes. Dentro do laço, fiz com que os carros fossem movimentados apenas se nenhum tivesse passado ainda da linha de chegada. Se o MRU de algum carro fosse maior que a posição x da linha de chegada, uma variável recebia a numeração do carro vencedor, e as velocidades de todos os carros ficaria 0. Caso nenhum carro tivesse passado da linha, então chamo a função carro() para desenhar os mesmos.
Depois do laço, chamei a função randomSeed() apenas para não haver repetição nos valores aleatórios. E para concluir, se algum carro tiver passado da linha de chegada, mostro seu nome na tela com a função text().
Após algum carro ultrapassar a linha de chegada:
Para baixar o código da aplicação clique aqui


Comentários
Postar um comentário