-
Notifications
You must be signed in to change notification settings - Fork 36
/
coro.nim
39 lines (28 loc) · 651 Bytes
/
coro.nim
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
import nico
import sequtils
nico.init("nico","coroutines")
var num = 0
var coroutines: seq[iterator: void]
template coroutine(body: untyped): untyped =
let c = iterator =
body
coroutines.add(c)
proc gameInit() =
num = 0
proc gameUpdate(dt: float32) =
if btnp(pcA):
echo "adding coroutine"
coroutine:
for i in 0..<100:
num += 1
yield
echo "coroutine finished"
for c in coroutines:
c()
coroutines.keepItIf(it.finished() == false)
proc gameDraw() =
cls()
setColor(7)
print("num: " & $num, 4, 4)
nico.createWindow("coroutines", 128, 128, 3)
nico.run(gameInit, gameUpdate, gameDraw)