Fixed the problem! Fov works now

This commit is contained in:
Joel M. Southall 2019-07-17 18:37:24 -07:00
parent 8bbf6c4ff5
commit eea1fa9388
3 changed files with 28 additions and 27 deletions

5
fov.go
View File

@ -2,6 +2,7 @@ package main
import (
"steel/mapping"
"github.com/kettek/goro/fov"
)
@ -18,6 +19,6 @@ func InitializeFoV(g *mapping.GameMap) fov.Map {
return fovMap
}
func RecomputeFov(fovMap fov.Map, centerX, centerY int, radius int, fov.Light) {
fovMap.Recompute(centerX, centerY, radius, light)
func RecomputeFov(fovMap fov.Map, centerX, centerY int, radius int, fovLight fov.Light) {
fovMap.Recompute(centerX, centerY, radius, fovLight)
}

20
main.go
View File

@ -1,13 +1,12 @@
package main
import (
"github.com/kettek/goro"
"github.com/kettek/goro-game/entity"
"github.com/kettek/goro-game/mapping"
"github.com/kettek/goro/fov"
"log"
"steel/entity"
"steel/mapping"
"github.com/kettek/goro"
"github.com/kettek/goro/fov"
)
func main() {
@ -32,14 +31,14 @@ func main() {
fovRecompute := true
colors := map[string]goro.Color{
"darkWall": goro.Color{R: 25, G: 25, B: 25, A: 255},
"darkGround": goro.Color{R: 100, G: 100, B: 100, A: 255},
"lightWall": goro.Color{R: 50, G: 50, B: 50, A: 255},
"darkWall": goro.Color{R: 25, G: 25, B: 25, A: 255},
"darkGround": goro.Color{R: 100, G: 100, B: 100, A: 255},
"lightWall": goro.Color{R: 50, G: 50, B: 50, A: 255},
"lightGround": goro.Color{R: 150, G: 150, B: 150, A: 255},
}
player := entity.NewEntity(screen.Columns/2, screen.Rows/2+5, '@', goro.Style{Foreground: goro.ColorWhite})
npc := entity.NewEntity(screen.Columns/2-5, screen. Rows/2, '@', goro.Style{Foreground: goro.ColorYellow})
npc := entity.NewEntity(screen.Columns/2-5, screen.Rows/2, '@', goro.Style{Foreground: goro.ColorYellow})
entities := []*entity.Entity{
player,
@ -47,7 +46,7 @@ func main() {
}
gameMap := mapping.GameMap{
Width: mapWidth,
Width: mapWidth,
Height: mapHeight,
}
@ -60,7 +59,7 @@ func main() {
for {
if fovRecompute {
RecomputeFoV(fovMap, player.X, player.Y, fovRadius, fov.Light{})
RecomputeFov(fovMap, player.X, player.Y, fovRadius, fov.Light{})
}
// Draw screen.
@ -77,6 +76,7 @@ func main() {
case ActionMove:
if !gameMap.IsBlocked(player.X+action.X, player.Y+action.Y) {
player.Move(action.X, action.Y)
fovRecompute = true
}
case ActionQuit:
goro.Quit()

View File

@ -23,27 +23,27 @@ func DrawAll(screen *goro.Screen, entities []*entity.Entity, gameMap mapping.Gam
screen.SetBackground(x, y, colors["lightGround"])
}
} else {
if tile.BlockSight {
screen.SetBackground(x, y, colors["darkWall"])
} else {
screen.SetBackground(x, y, colors["darkGround"])
if tile.BlockSight {
screen.SetBackground(x, y, colors["darkWall"])
} else {
screen.SetBackground(x, y, colors["darkGround"])
}
}
}
}
}
}
// Draw all the entities in the game map.
for_, entity := range entities {
DrawEntity(screen, entity)
}
screen.Flush()
// Draw all the entities in the game map.
for _, entity := range entities {
DrawEntity(screen, entity)
}
screen.Flush()
}
// ClearAll clears all entities from the screen.
func ClearAll(screen *goro.Screen, entities[]*entity.Entity) {
func ClearAll(screen *goro.Screen, entities []*entity.Entity) {
for _, entity := range entities {
ClearEntity(screen, entity)
ClearEntity(screen, entity)
}
}