Fixed next scene setup when adding scene.

This commit is contained in:
2023-08-25 11:53:01 -04:00
parent fbfe87137e
commit 8c7c9c0b8c

View File

@@ -17,9 +17,9 @@ type Area struct {
} }
type GameInfo struct { type GameInfo struct {
Name string Name string
Version string Version string
Dimension Area Dimensions Area
} }
type Manager struct { type Manager struct {
@@ -37,7 +37,7 @@ func NewManager() Manager {
Info: GameInfo{ Info: GameInfo{
Name: "groovy", Name: "groovy",
Version: "1.0", Version: "1.0",
Dimension: Area{ Dimensions: Area{
Width: defaultWidth, Width: defaultWidth,
Height: defaultHeight, Height: defaultHeight,
}, },
@@ -70,12 +70,13 @@ func (m *Manager) Draw(screen *ebiten.Image) {
// ebitengine proxy for layout // ebitengine proxy for layout
func (m *Manager) Layout(outsideWidth, outsideHeight int) (screenWidth, screenHeight int) { func (m *Manager) Layout(outsideWidth, outsideHeight int) (screenWidth, screenHeight int) {
return m.Info.Dimension.Width, m.Info.Dimension.Height return m.Info.Dimensions.Width, m.Info.Dimensions.Height
} }
// appends scene to the managed scenes // appends scene to the managed scenes
func (m *Manager) AddScene(s Scene) { func (m *Manager) AddScene(s Scene) {
setDefaultHandlers(m, s) setDefaultHandlers(m, s)
s.SetDimensions(m.Info.Dimensions)
m.scenes = append(m.scenes, s) m.scenes = append(m.scenes, s)
} }
@@ -110,6 +111,7 @@ func (m *Manager) SetCurrentScene(sceneId uint) {
} }
m.currentSceneId = sceneId m.currentSceneId = sceneId
m.currentScene = m.scenes[sceneId] m.currentScene = m.scenes[sceneId]
m.nextSceneId = m.currentSceneId + 1
} }
// handle scene transition // handle scene transition
@@ -124,10 +126,14 @@ func (m *Manager) SetNextScene(sceneId uint) {
// sets sene dimensions // sets sene dimensions
func (m *Manager) SetDimensions(a Area) { func (m *Manager) SetDimensions(a Area) {
m.Info.Dimension = a m.Info.Dimensions = a
} }
// report number of total scenes // report number of total scenes
func (m *Manager) SceneCount() uint { func (m *Manager) SceneCount() uint {
return uint(len(m.scenes)) return uint(len(m.scenes))
} }
func (m *Manager) GetScene(sceneId uint) Scene {
return m.scenes[sceneId]
}