-
Notifications
You must be signed in to change notification settings - Fork 0
/
ator.js
77 lines (67 loc) · 2.13 KB
/
ator.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//variaveis do ator
let yAtor = 366;
let xAtor = 245;
let colisao = false;
let meusPontos = 0;
function mostraAtor(){ //função que mostra o ator, com base no preload feito em imagens.js
image(imagemDoAtor, xAtor, yAtor, 30, 30);
}
function movimentaAtor(){ //função que movimenta o ator, com base nas teclas pressionadas. as teclas usadas são as setas do teclado.
if(keyIsDown(UP_ARROW)){
yAtor -= 3;
}
if(keyIsDown(DOWN_ARROW)){
yAtor += 3;
}
if(keyIsDown(LEFT_ARROW)){
xAtor -= 3;
}
if(keyIsDown(RIGHT_ARROW)){
xAtor += 3;
}
}
function verificaColisao(){ //função que verifica se houve colisão entre o ator e os carros. é usada a função collideRectCircle do p5.collide2d. Dado o formato do ator e dos carros, fizemos uso da função collideRectCircle,
for (let i = 0 ; i < imagemCarros.length; i++){ //que verifica a colisão entre um retângulo e um círculo. em caso de colisão, o ator é levado para a posição inicial e o som da colisão é tocado. Um ponto também é subtraído
colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15)
if (colisao){
voltaAtorParaPosicaoInicial();
somDaColisao.play();
if(pontosMaiorQueZero()){ //verificação para que não hajam pontos negativos no score.
meusPontos--;
}
}
}
}
function pontosMaiorQueZero(){ //função que verifica se os pontos são maiores que zero.
return meusPontos>0;
}
function voltaAtorParaPosicaoInicial(){ //função que volta o ator para a posição inicial.
yAtor = 366;
}
function incluiPontos(){ //função que inclui o placar no jogo.
textAlign(CENTER);
textSize(25);
fill(color(255,240,60));
text(meusPontos, width / 2, 27 );
}
function marcaPonto(){ //função que marca o ponto quando o ator chega ao topo da tela.
if(yAtor < 15){
meusPontos++;
voltaAtorParaPosicaoInicial();
somDoPonto.play();
}
}
function limites(){ //função que limita o ator dentro da tela.
if(xAtor < 0){
xAtor = 0;
}
if(xAtor > 470){
xAtor = 470;
}
if(yAtor < 0){
yAtor = 0;
}
if(yAtor > 370){
yAtor = 370;
}
}