fixed some performance things

This commit is contained in:
MrDonuts
2023-11-20 23:25:38 -05:00
parent a875a4ed57
commit 7af60685db
7 changed files with 15 additions and 21 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

BIN
assets/.DS_Store vendored

Binary file not shown.

BIN
assets/audio/.DS_Store vendored

Binary file not shown.

View File

@@ -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 {

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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)
}