Skip to content

Commit

Permalink
added new game.go
Browse files Browse the repository at this point in the history
  • Loading branch information
Tristan Goossens committed Oct 10, 2019
1 parent 948f2b0 commit 2097dd5
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 28 deletions.
68 changes: 68 additions & 0 deletions game/game.go
@@ -0,0 +1,68 @@
package trisnake

import (
tl "github.com/JoelOtter/termloop"
// s "github.com/tristangoossens/snake-go/game"
)

var Snakegame *tl.Game
var arenawidth int = 70
var arenaheight int = 25
var arena *Arena
var score int

func StartGame() {
Snakegame = tl.NewGame()

ts := NewTitleScreen()
ts.AddEntity(ts.TitleText)
Snakegame.Screen().SetLevel(ts)
Snakegame.Screen().SetFps(10)
Snakegame.Start()
}

func NewTitleScreen() *Titlescreen {
ts := new(Titlescreen)
ts.Level = tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorBlack,
})
ts.TitleText = tl.NewText(10, 5, "Press ENTER to start!", tl.ColorWhite, tl.ColorBlack)
return ts
}

func NewSidepanel() (*tl.Rectangle, *tl.Text) {
sidepanel := tl.NewRectangle(arenawidth+1, 0, 30, arenaheight, tl.ColorWhite)
scoretxt := tl.NewText(arenawidth+2, 1, "Score: 0", tl.ColorBlack, tl.ColorWhite)
return sidepanel, scoretxt
}

func Gameover() {
gos := new(Gameoverscreen)
gos.Level = tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorBlack,
})
gos.Gameovertext = tl.NewText(10, 5, "Gameover!", tl.ColorBlack, tl.ColorRed)
gos.AddEntity(gos.Gameovertext)

Snakegame.Screen().SetLevel(gos)
}

func (ts *Titlescreen) Tick(event tl.Event) {
if event.Type == tl.EventKey && event.Key == tl.KeyEnter {

level := tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorBlack,
})

snake := NewSnake()
arena := NewArena(arenawidth, arenaheight)
sidepanel, scoretxt := NewSidepanel()

level.AddEntity(sidepanel)
level.AddEntity(scoretxt)
level.AddEntity(snake)
level.AddEntity(arena)

Snakegame.Screen().SetLevel(level)
}
}
29 changes: 1 addition & 28 deletions run.go
@@ -1,36 +1,9 @@
package main

import (
tl "github.com/JoelOtter/termloop"
s "github.com/tristangoossens/snake-go/game"
)

var snakegame *tl.Game
var arenawidth int = 70
var arenaheight int = 25
var score int

func main() {
level := tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorBlack,
})

snake := s.NewSnake()
arena := s.NewArena(arenawidth, arenaheight)
sidepanel, titletext := NewSidepanel()

level.AddEntity(sidepanel)
level.AddEntity(titletext)
level.AddEntity(snake)
level.AddEntity(arena)

snakegame.Screen().SetLevel(level)
snakegame.Screen().SetFps(10)
snakegame.Start()
}

func NewSidepanel() (*tl.Rectangle, *tl.Text) {
sidepanel := tl.NewRectangle(arenawidth+1, 0, 30, arenaheight, tl.ColorWhite)
scoretxt := tl.NewText(arenawidth+2, 1, "Score: 0", tl.ColorBlack, tl.ColorWhite)
return sidepanel, scoretxt
s.StartGame()
}

0 comments on commit 2097dd5

Please sign in to comment.