fixed some performance things
This commit is contained in:
BIN
assets/.DS_Store
vendored
BIN
assets/.DS_Store
vendored
Binary file not shown.
BIN
assets/audio/.DS_Store
vendored
BIN
assets/audio/.DS_Store
vendored
Binary file not shown.
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user