Skip to content

Commit 2097dd5

Browse files
author
Tristan Goossens
committed
added new game.go
1 parent 948f2b0 commit 2097dd5

File tree

2 files changed

+69
-28
lines changed

2 files changed

+69
-28
lines changed

game/game.go

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package trisnake
2+
3+
import (
4+
tl "github.com/JoelOtter/termloop"
5+
// s "github.com/tristangoossens/snake-go/game"
6+
)
7+
8+
var Snakegame *tl.Game
9+
var arenawidth int = 70
10+
var arenaheight int = 25
11+
var arena *Arena
12+
var score int
13+
14+
func StartGame() {
15+
Snakegame = tl.NewGame()
16+
17+
ts := NewTitleScreen()
18+
ts.AddEntity(ts.TitleText)
19+
Snakegame.Screen().SetLevel(ts)
20+
Snakegame.Screen().SetFps(10)
21+
Snakegame.Start()
22+
}
23+
24+
func NewTitleScreen() *Titlescreen {
25+
ts := new(Titlescreen)
26+
ts.Level = tl.NewBaseLevel(tl.Cell{
27+
Bg: tl.ColorBlack,
28+
})
29+
ts.TitleText = tl.NewText(10, 5, "Press ENTER to start!", tl.ColorWhite, tl.ColorBlack)
30+
return ts
31+
}
32+
33+
func NewSidepanel() (*tl.Rectangle, *tl.Text) {
34+
sidepanel := tl.NewRectangle(arenawidth+1, 0, 30, arenaheight, tl.ColorWhite)
35+
scoretxt := tl.NewText(arenawidth+2, 1, "Score: 0", tl.ColorBlack, tl.ColorWhite)
36+
return sidepanel, scoretxt
37+
}
38+
39+
func Gameover() {
40+
gos := new(Gameoverscreen)
41+
gos.Level = tl.NewBaseLevel(tl.Cell{
42+
Bg: tl.ColorBlack,
43+
})
44+
gos.Gameovertext = tl.NewText(10, 5, "Gameover!", tl.ColorBlack, tl.ColorRed)
45+
gos.AddEntity(gos.Gameovertext)
46+
47+
Snakegame.Screen().SetLevel(gos)
48+
}
49+
50+
func (ts *Titlescreen) Tick(event tl.Event) {
51+
if event.Type == tl.EventKey && event.Key == tl.KeyEnter {
52+
53+
level := tl.NewBaseLevel(tl.Cell{
54+
Bg: tl.ColorBlack,
55+
})
56+
57+
snake := NewSnake()
58+
arena := NewArena(arenawidth, arenaheight)
59+
sidepanel, scoretxt := NewSidepanel()
60+
61+
level.AddEntity(sidepanel)
62+
level.AddEntity(scoretxt)
63+
level.AddEntity(snake)
64+
level.AddEntity(arena)
65+
66+
Snakegame.Screen().SetLevel(level)
67+
}
68+
}

run.go

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,9 @@
11
package main
22

33
import (
4-
tl "github.com/JoelOtter/termloop"
54
s "github.com/tristangoossens/snake-go/game"
65
)
76

8-
var snakegame *tl.Game
9-
var arenawidth int = 70
10-
var arenaheight int = 25
11-
var score int
12-
137
func main() {
14-
level := tl.NewBaseLevel(tl.Cell{
15-
Bg: tl.ColorBlack,
16-
})
17-
18-
snake := s.NewSnake()
19-
arena := s.NewArena(arenawidth, arenaheight)
20-
sidepanel, titletext := NewSidepanel()
21-
22-
level.AddEntity(sidepanel)
23-
level.AddEntity(titletext)
24-
level.AddEntity(snake)
25-
level.AddEntity(arena)
26-
27-
snakegame.Screen().SetLevel(level)
28-
snakegame.Screen().SetFps(10)
29-
snakegame.Start()
30-
}
31-
32-
func NewSidepanel() (*tl.Rectangle, *tl.Text) {
33-
sidepanel := tl.NewRectangle(arenawidth+1, 0, 30, arenaheight, tl.ColorWhite)
34-
scoretxt := tl.NewText(arenawidth+2, 1, "Score: 0", tl.ColorBlack, tl.ColorWhite)
35-
return sidepanel, scoretxt
8+
s.StartGame()
369
}

0 commit comments

Comments
 (0)