aboutsummaryrefslogtreecommitdiffstats
path: root/pong/pong.tdy
blob: 9405a5cfd33500330ae99676b5bf17b20cd88349 (plain) (blame)
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
blob Paddle {
    x: float
    y: float
}

blob Player {
    paddle: Paddle
}

blob State {
    p1: Player
    p2: Player
}

update := fn state: State {
    delta := get_delta()

    if key_down("w") {
        state.p1.paddle.y = state.p1.paddle.y + delta
    }
    if key_down("s") {
        state.p1.paddle.y = state.p1.paddle.y - delta
    }

    if key_down("i") {
        state.p2.paddle.y = state.p2.paddle.y + delta
    }
    if key_down("i") {
        state.p2.paddle.y = state.p2.paddle.y - delta
    }
}

draw := fn state: State {
    clear()
    draw_rectangle(state.p1.paddle.x, state.p1.paddle.y, 0.2, 1.)
    draw_rectangle(state.p2.paddle.x, state.p2.paddle.y, 0.2, 1.)
    next_frame()
}

init := fn {
    running := true

    state := State()
    state.p1 = Player()
    state.p1.paddle = Paddle()
    state.p1.paddle.x = 1.
    state.p1.paddle.y = 10.

    state.p2 = Player()
    state.p2.paddle = Paddle()
    state.p2.paddle.x = 19.
    state.p2.paddle.y = 10.

    for i := 0, i < 5, i = i + 1 {
        log(state.p1.paddle.x, state.p1.paddle.y)
        log(state.p2.paddle.x, state.p2.paddle.y)

        update(state)
        draw(state)
    }
}

init()