Variable-ize some values
parent
07c133419e
commit
5d9a7ba0d9
|
@ -14,15 +14,27 @@ type Game struct {
|
|||
Images map[string]*ebiten.Image
|
||||
Map Map
|
||||
cTiles [][2]int
|
||||
stepRate int
|
||||
tickDelay int
|
||||
tileWidth int
|
||||
tileHeight int
|
||||
}
|
||||
|
||||
func (g *Game) Init() {
|
||||
rand.Seed(time.Now().UnixMilli())
|
||||
|
||||
g.Images = make(map[string]*ebiten.Image)
|
||||
|
||||
g.stepRate = 0
|
||||
|
||||
data.Init()
|
||||
|
||||
for name, img := range data.Images {
|
||||
// Assume tile size is same as first data Image.
|
||||
if g.tileWidth == 0 || g.tileHeight == 0 {
|
||||
g.tileWidth = img.Bounds().Dx()
|
||||
g.tileHeight = img.Bounds().Dy()
|
||||
}
|
||||
g.Images[name] = ebiten.NewImageFromImage(img)
|
||||
}
|
||||
|
||||
|
@ -32,8 +44,9 @@ func (g *Game) Init() {
|
|||
}
|
||||
|
||||
func (g *Game) ResetMap() {
|
||||
g.Map.Size(24, 24)
|
||||
rand.Seed(time.Now().Unix())
|
||||
// Size map according to 1/2 ebiten window.
|
||||
w, h := ebiten.WindowSize()
|
||||
g.Map.Size(w/2/g.tileWidth, h/2/g.tileHeight)
|
||||
|
||||
g.cTiles = [][2]int{{rand.Intn(g.Map.w), rand.Intn(g.Map.h)}}
|
||||
}
|
||||
|
@ -64,15 +77,14 @@ func (g *Game) iterFunc(c [2]int, t *Tile) {
|
|||
|
||||
// Update updates the game state.
|
||||
func (g *Game) Update() error {
|
||||
if ebiten.IsKeyPressed(ebiten.KeyR) {
|
||||
if ebiten.IsKeyPressed(ebiten.KeyR) && len(g.cTiles) == 0 {
|
||||
g.ResetMap()
|
||||
}
|
||||
if g.tickDelay > 2 && len(g.cTiles) > 0 {
|
||||
if g.tickDelay > g.stepRate && len(g.cTiles) > 0 {
|
||||
g.cTiles = g.Map.Iterate(g.cTiles, g.iterFunc)
|
||||
g.tickDelay = 0
|
||||
} else {
|
||||
g.tickDelay++
|
||||
}
|
||||
g.tickDelay++
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -83,7 +95,7 @@ func (g *Game) Draw(screen *ebiten.Image) {
|
|||
for y := range g.Map.tiles[x] {
|
||||
if img, ok := g.Images[g.Map.tiles[x][y].tile]; ok {
|
||||
op := &ebiten.DrawImageOptions{}
|
||||
op.GeoM.Translate(float64(x*8), float64(y*8))
|
||||
op.GeoM.Translate(float64(x*g.tileWidth), float64(y*g.tileHeight))
|
||||
screen.DrawImage(img, op)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue