MCPcopy Create free account
hub / github.com/Bloom-Engine/engine / updateAI

Function updateAI

examples/kart-racer/main.ts:152–171  ·  view source on GitHub ↗
(kart: Kart, dt: number)

Source from the content-addressed store, hash-verified

150}
151
152function updateAI(kart: Kart, dt: number): void {
153 if (kart.finished || !raceStarted) return;
154
155 const target = checkpoints[kart.targetCheckpoint];
156 const dx = target.x - kart.x;
157 const dz = target.z - kart.z;
158 const targetAngle = Math.atan2(dz, dx);
159
160 let angleDiff = targetAngle - kart.angle;
161 while (angleDiff > Math.PI) angleDiff = angleDiff - Math.PI * 2;
162 while (angleDiff < -Math.PI) angleDiff = angleDiff + Math.PI * 2;
163
164 const steer = clamp(angleDiff * 3.0 + kart.steerBias, -TURN_SPEED, TURN_SPEED);
165
166 // AI always accelerates, brakes on sharp turns
167 let accel = ACCEL * 0.85;
168 if (Math.abs(angleDiff) > 0.5) accel = accel * 0.5;
169
170 updateKartPhysics(kart, dt, accel, steer);
171}
172
173function getPlacement(): number {
174 // Sort by laps then checkpoints, player is karts[0]

Callers 1

main.tsFile · 0.85

Calls 2

clampFunction · 0.90
updateKartPhysicsFunction · 0.85

Tested by

no test coverage detected