Files
RGB/states/loadLevelState.go

53 lines
1.0 KiB
Go
Raw Normal View History

2023-11-19 20:53:35 -05:00
package states
import (
"fmt"
"math"
"github.com/hajimehoshi/ebiten/v2"
geom "src.robn.tv/MrDonuts/RGB/geometry"
score "src.robn.tv/MrDonuts/RGB/tools"
)
var currentEnd = 1 //used for animating squares
var secondsPerUpdate = 0.02
var ticksPerSecond = 60.0
var deltaSeconds = 1.0 / ticksPerSecond
var secondsCounter = 0.0
type LoadLevelState struct {
}
func (s *LoadLevelState) Enter() {
fmt.Println("Entering Loading State")
currentEnd = 1
}
func (s *LoadLevelState) Exit() {
fmt.Println("Exiting Loading State")
}
func (s *LoadLevelState) Update() {
secondsCounter += deltaSeconds
//determine how much to jump by on each draw
totalSquares := geom.GameGrid.NumSquares()
jumpAmount := math.Ceil(float64(totalSquares) / ticksPerSecond)
if secondsCounter >= float64(secondsPerUpdate) {
secondsCounter = 0
currentEnd += int(jumpAmount)
}
if currentEnd > geom.GameGrid.NumSquares() {
SM.Transition("play")
}
}
func (s *LoadLevelState) Draw(screen *ebiten.Image) {
geom.GameGrid.DrawUpTo(currentEnd, screen)
score.ScoreMngr.Draw(screen)
}