tanks

Blow up enemy tanks using code
git clone https://git.woozle.org/neale/tanks.git

tanks / contrib
Neale Pickett  ·  2024-11-05

designer.js

 1var canvas;
 2var ctx;
 3var tank;
 4
 5function min(a, b) {
 6    if (a < b) {
 7        return a;
 8    } else {
 9        return b;
10    }
11}
12
13function deg2rad(angle) {
14    return angle*Math.PI/180;
15}
16
17function update() {
18    var color = document.getElementsByName('color')[0].value;
19    var sensors = new Array();
20
21    for (i = 0; i < 10; i += 1) {
22        var range = document.getElementsByName('s'+i+'r')[0].value;
23        var angle = document.getElementsByName('s'+i+'a')[0].value;
24        var width = document.getElementsByName('s'+i+'w')[0].value;
25        var turret = document.getElementsByName('s'+i+'t')[0].checked;
26
27        sensors[i] = [min(range, 100),
28                      deg2rad(angle % 360),
29                      deg2rad(width % 360),
30                      turret];
31    }
32
33    tank = new Tank(ctx, 200, 200, color, sensors);
34}
35
36function design() {
37    var frame = 0;
38    var loop_id;
39
40    canvas = document.getElementById('design');
41    ctx = canvas.getContext('2d');
42
43    canvas.width = 200;
44    canvas.height = 200;
45
46    tank = new Tank(ctx, 200, 200, "#c0c0c0", []);
47
48    function update() {
49        var turret = frame * Math.PI / 90;
50
51        frame += 1;
52        canvas.width = canvas.width;
53        tank.set_state(100, 100, Math.PI * 1.5, turret, 0, 0);
54        tank.draw_sensors();
55        tank.draw_tank();
56    }
57
58    loop_id = setInterval(update, 66);
59}