rowboz/player.go

75 lines
1.8 KiB
Go

package main
import "math/rand"
func (game *Game) drawPlayer() {
game.screen.SetContent(game.player.position.x, game.player.position.y, '@', nil, game.style)
}
func (g *Game) movePlayer(game *Game, press int) {
if press == Left {
if game.player.position.x != 2 {
game.player.position.x--
game.player.moves++
}
} else if press == Right {
if game.player.position.x != 78 {
game.player.position.x++
game.player.moves++
}
} else if press == Up {
if game.player.position.y != 1 {
game.player.position.y--
game.player.moves++
}
} else if press == Down {
if game.player.position.y != 22 {
game.player.position.y++
game.player.moves++
}
} else if press == upleft {
if game.player.position.x != 2 && game.player.position.y != 1 {
game.player.position.x--
game.player.position.y--
game.player.moves++
}
} else if press == upright {
if game.player.position.x != 78 && game.player.position.y != 1 {
game.player.position.x++
game.player.position.y--
game.player.moves++
}
} else if press == downright {
if game.player.position.x != 78 && game.player.position.y != 22 {
game.player.position.x++
game.player.position.y++
game.player.moves++
}
} else if press == downleft {
if game.player.position.x != 2 && game.player.position.y != 22 {
game.player.position.x--
game.player.position.y++
game.player.moves++
}
} else if press == teleport {
game.teleport()
game.player.teleports++
}
}
func (game *Game) teleport() {
// Draw something nice
game.player.position.x = rand.Intn(80)
game.player.position.y = rand.Intn(24)
}
func (game *Game) onPlayer(pos Position) bool {
var onPlayer bool
if pos.x == game.player.position.x && pos.y == game.player.position.y {
onPlayer = true
} else {
onPlayer = false
}
return onPlayer
}