Compare commits
2 Commits
fbfe87137e
...
49a8f2c768
| Author | SHA1 | Date | |
|---|---|---|---|
| 49a8f2c768 | |||
| 8c7c9c0b8c |
18
manager.go
18
manager.go
@@ -17,9 +17,9 @@ type Area struct {
|
||||
}
|
||||
|
||||
type GameInfo struct {
|
||||
Name string
|
||||
Version string
|
||||
Dimension Area
|
||||
Name string
|
||||
Version string
|
||||
Dimensions Area
|
||||
}
|
||||
|
||||
type Manager struct {
|
||||
@@ -37,7 +37,7 @@ func NewManager() Manager {
|
||||
Info: GameInfo{
|
||||
Name: "groovy",
|
||||
Version: "1.0",
|
||||
Dimension: Area{
|
||||
Dimensions: Area{
|
||||
Width: defaultWidth,
|
||||
Height: defaultHeight,
|
||||
},
|
||||
@@ -70,12 +70,13 @@ func (m *Manager) Draw(screen *ebiten.Image) {
|
||||
|
||||
// ebitengine proxy for layout
|
||||
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
|
||||
func (m *Manager) AddScene(s Scene) {
|
||||
setDefaultHandlers(m, s)
|
||||
s.SetDimensions(m.Info.Dimensions)
|
||||
m.scenes = append(m.scenes, s)
|
||||
}
|
||||
|
||||
@@ -110,6 +111,7 @@ func (m *Manager) SetCurrentScene(sceneId uint) {
|
||||
}
|
||||
m.currentSceneId = sceneId
|
||||
m.currentScene = m.scenes[sceneId]
|
||||
m.nextSceneId = m.currentSceneId + 1
|
||||
}
|
||||
|
||||
// handle scene transition
|
||||
@@ -124,10 +126,14 @@ func (m *Manager) SetNextScene(sceneId uint) {
|
||||
|
||||
// sets sene dimensions
|
||||
func (m *Manager) SetDimensions(a Area) {
|
||||
m.Info.Dimension = a
|
||||
m.Info.Dimensions = a
|
||||
}
|
||||
|
||||
// report number of total scenes
|
||||
func (m *Manager) SceneCount() uint {
|
||||
return uint(len(m.scenes))
|
||||
}
|
||||
|
||||
func (m *Manager) GetScene(sceneId uint) Scene {
|
||||
return m.scenes[sceneId]
|
||||
}
|
||||
|
||||
2
scene.go
2
scene.go
@@ -7,6 +7,7 @@ type SceneEvent int64
|
||||
const (
|
||||
NOOP SceneEvent = 0
|
||||
RESET SceneEvent = 1 // reset to initial scene
|
||||
LOAD SceneEvent = 2
|
||||
RELOAD SceneEvent = 3 // reload current scene
|
||||
COMPLETED SceneEvent = 4 // current scene has completed
|
||||
ENDGAME SceneEvent = 5 // shutdown all scenes
|
||||
@@ -16,4 +17,5 @@ type Scene interface {
|
||||
Update() error
|
||||
Draw(screen *ebiten.Image)
|
||||
SetEventHandler(e SceneEvent, f func())
|
||||
SetDimensions(a Area)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user