diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..0e98880 Binary files /dev/null and b/.DS_Store differ diff --git a/assets/.DS_Store b/assets/.DS_Store index 0050115..491eedd 100644 Binary files a/assets/.DS_Store and b/assets/.DS_Store differ diff --git a/assets/audio/.DS_Store b/assets/audio/.DS_Store index c1e01e1..956d5a3 100644 Binary files a/assets/audio/.DS_Store and b/assets/audio/.DS_Store differ diff --git a/geometry/grid.go b/geometry/grid.go index ce92cb7..8d72ee5 100644 --- a/geometry/grid.go +++ b/geometry/grid.go @@ -12,12 +12,12 @@ var defaultSquareSpacing = 5 var minBorder = 20 var ScoreOffset = 50 var HighScoreOffset = 10 -var GameGrid Grid +var GameGrid *Grid var MaxGridDimension = 20 type Grid struct { squareSpacing int - squares [][]Square + squares [][]*Square startX int startY int squareSize int @@ -77,14 +77,14 @@ func BuildGrid(numRows int, numColumns int) { grd.startY = currentY grd.squareSize = sqSize - table := make([][]Square, numRows) + table := make([][]*Square, numRows) for i := 0; i < numRows; i++ { - row := make([]Square, numColumns) + row := make([]*Square, numColumns) for j := 0; j < numColumns; j++ { sq := MakeSquare(sqSize) sq.SetPosition(currentX, currentY) - row[j] = sq + row[j] = &sq currentX += sqSize + grd.squareSpacing } table[i] = row @@ -133,7 +133,7 @@ func BuildGrid(numRows int, numColumns int) { } grd.coloredSquaresRemaining = squaresToColour - GameGrid = grd + GameGrid = &grd } func (grd *Grid) Draw(screen *ebiten.Image) { @@ -174,7 +174,7 @@ func (grd *Grid) ChangeColour(row int, column int, clr color.Color) { } func (grd *Grid) GetSquareAt(row int, column int) *Square { - return &grd.squares[row-1][column-1] + return grd.squares[row-1][column-1] } func (grd *Grid) ColouredSquaresRemaining() int { diff --git a/geometry/player.go b/geometry/player.go index bd0445a..5cab649 100644 --- a/geometry/player.go +++ b/geometry/player.go @@ -21,7 +21,7 @@ var CurrentEnergy = defaultStartingEnergy var CurrentLevel = 1 type Player struct { - square Square + square *Square row int col int currColorIndex int @@ -41,7 +41,7 @@ func SetupPlayer() { sq.SetPosition(gridSq.x, gridSq.y) //setup struct for passing around - ply := Player{square: sq, row: rows, col: 1, currColorIndex: 0} + ply := Player{square: &sq, row: rows, col: 1, currColorIndex: 0} MainPlayer = &ply } diff --git a/states/playLevelState.go b/states/playLevelState.go index 884f79f..a9eb6b5 100644 --- a/states/playLevelState.go +++ b/states/playLevelState.go @@ -67,5 +67,5 @@ func (s *PlayLevelState) Update() { func (s *PlayLevelState) Draw(screen *ebiten.Image) { geom.GameGrid.Draw(screen) geom.MainPlayer.Draw(screen) - score.ScoreMngr.Draw(screen) + score.ScoreMngr.Draw(screen) //something in here is causing big time CPU usage } diff --git a/tools/scoreManager.go b/tools/scoreManager.go index f5a566f..eff7230 100644 --- a/tools/scoreManager.go +++ b/tools/scoreManager.go @@ -14,6 +14,8 @@ import ( ) var ScoreMngr ScoreManager +var smallFace = assets.LoadFontFace("fonts/robot.otf", 12) +var bigFace = assets.LoadFontFace("fonts/robot.otf", 20) type ScoreManager struct{} @@ -24,22 +26,14 @@ func (sm *ScoreManager) Draw(screen *ebiten.Image) { w, h := ebiten.WindowSize() - //highScoreStr := fmt.Sprintf("High Score: %v", highScore) levelStr := fmt.Sprintf("Level: %v", geom.CurrentLevel) - face := assets.LoadFontFace("fonts/robot.otf", 12) - - //draw high score (i.e. best level) - //stringWidth := font.MeasureString(face, highScoreStr).Ceil() - //text.Draw(screen, highScoreStr, face, w-stringWidth-geom.HighScoreOffset, h-geom.HighScoreOffset, color.White) //draw current level - //stringWidth = font.MeasureString(face, levelStr).Ceil() - text.Draw(screen, levelStr, face, geom.HighScoreOffset, h-geom.HighScoreOffset, color.White) + text.Draw(screen, levelStr, smallFace, geom.HighScoreOffset, h-geom.HighScoreOffset, color.White) //draw energy at the top energyStr := fmt.Sprintf("Energy: %v", geom.CurrentEnergy) - face = assets.LoadFontFace("fonts/robot.otf", 20) - stringWidth := font.MeasureString(face, energyStr).Ceil() - text.Draw(screen, energyStr, face, w/2-stringWidth/2, geom.ScoreOffset, color.White) + stringWidth := font.MeasureString(bigFace, energyStr).Ceil() + text.Draw(screen, energyStr, bigFace, w/2-stringWidth/2, geom.ScoreOffset, color.White) }