initial spectator implementation

This commit is contained in:
sm
2013-08-19 22:23:35 -07:00
parent e391cd3a0b
commit 27afc65297
3 changed files with 86 additions and 36 deletions
+12
View File
@@ -14,6 +14,9 @@ type game struct {
unregister chan *player
id chan int
turn int
spectators map[*Spectator]bool
sregister chan *Spectator
sunregister chan *Spectator
}
type Config struct {
@@ -55,6 +58,12 @@ func (g *game) run() {
case p := <-g.unregister:
delete(g.players, p)
close(p.send)
case s := <-g.sregister:
log.Printf("registering a spectator: %+v", s)
g.spectators[s] = true
case s := <-g.sunregister:
delete(g.spectators, s)
close(s.send)
case <-time.Tick(time.Duration(*tick) * time.Millisecond):
g.turn++
t0 := time.Now()
@@ -111,6 +120,9 @@ func (g *game) run() {
for p := range g.players {
p.send <- payload
}
for s := range g.spectators {
s.send <- payload
}
t1 = time.Now()
if *verbose {