-
Notifications
You must be signed in to change notification settings - Fork 0
/
trafego.js
51 lines (41 loc) · 1.26 KB
/
trafego.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
//@ts-check
import { GameState } from "./GameState";
import * as collision from "./coisas/Collision"
import * as vec2 from "./coisas/vec2"
import { pick_any } from "./coisas/util";
let checkCollisions=false
/**
*
* @param {GameState} game
*/
export function trafego(game){
// trafego
checkCollisions = !checkCollisions
for(let zumbi of game.trafego){
if(game.ladoDoAcidente == zumbi.side){
continue
}
zumbi.update(0.016)
if(zumbi.rua.removed || zumbi.saiuDoPercurso){
zumbi.saiuDoPercurso=false
zumbi.rua = game.lastSegment
zumbi.percurso = pick_any(0.25,0.5,0.75,1) * game.lastSegment.length
zumbi.side = pick_any(1,-1)
zumbi.velocidade = -zumbi.side * 0.4
continue
}
zumbi.obj
.setPos(zumbi.position[0],0,zumbi.position[1])
.setRot(0,(zumbi.orientation- Math.sign(zumbi.side) ) * Math.PI,0)
const out = {}
if(!checkCollisions || game.carroExplodiu)
continue
if(collision.colidem(zumbi,game.carro,out)){
game.gameOver()
game.ladoDoAcidente = zumbi.side
zumbi.velocidade = 0
game.carro.velocity = vec2.mul(zumbi.velocity,25)
game.carro.yawRate = 5 * pick_any(-1,1)
}
}
}