2023-08-18 09:45:00 -04:00
|
|
|
package main
|
|
|
|
|
|
2023-08-18 12:02:59 -04:00
|
|
|
import (
|
2023-08-21 08:00:24 -04:00
|
|
|
"cosmos/diego/groovy"
|
|
|
|
|
splashmenu "cosmos/diego/groovy/examples/splashmenu/scenes"
|
|
|
|
|
|
2023-08-18 12:02:59 -04:00
|
|
|
"fmt"
|
|
|
|
|
"log"
|
|
|
|
|
|
|
|
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-18 09:45:00 -04:00
|
|
|
func main() {
|
2023-08-18 12:02:59 -04:00
|
|
|
|
2023-08-23 01:24:43 -04:00
|
|
|
//setup manager
|
|
|
|
|
manager := groovy.NewManager()
|
|
|
|
|
manager.SetDimensions(groovy.Area{Width: 1280, Height: 720})
|
2023-08-18 12:02:59 -04:00
|
|
|
ebiten.SetWindowSize(manager.Info.Dimension.Width, manager.Info.Dimension.Height)
|
|
|
|
|
ebiten.SetWindowTitle(manager.Info.Name)
|
|
|
|
|
|
2023-08-23 01:24:43 -04:00
|
|
|
loadScenes(&manager)
|
|
|
|
|
|
|
|
|
|
//identification
|
2023-08-18 12:02:59 -04:00
|
|
|
fmt.Println(manager.Info.Name + ": v" + manager.Info.Version)
|
|
|
|
|
|
|
|
|
|
if err := ebiten.RunGame(&manager); err != nil {
|
|
|
|
|
log.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Example loading of two scenes
|
|
|
|
|
func loadScenes(m *groovy.Manager) {
|
2023-08-23 01:24:43 -04:00
|
|
|
//call the loaders for each scene
|
|
|
|
|
loadSplash(m)
|
|
|
|
|
loadMenu(m)
|
|
|
|
|
|
|
|
|
|
//reset the manager to start scene 1
|
|
|
|
|
m.ResetScenes()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// creates splash screen, sets completion handler
|
|
|
|
|
func loadSplash(m *groovy.Manager) {
|
|
|
|
|
//create splash screen and append as first scene in manager
|
2023-08-18 12:02:59 -04:00
|
|
|
sceneSplash := splashmenu.NewSplash()
|
|
|
|
|
m.AddScene(&sceneSplash)
|
2023-08-23 01:24:43 -04:00
|
|
|
}
|
2023-08-18 12:02:59 -04:00
|
|
|
|
2023-08-23 01:24:43 -04:00
|
|
|
// creates menu screen, populates the options, sets key event handler
|
|
|
|
|
func loadMenu(m *groovy.Manager) {
|
|
|
|
|
//create menu with defined options, append to manager
|
2023-08-18 12:02:59 -04:00
|
|
|
sceneMenu := splashmenu.NewMenu()
|
2023-08-23 01:24:43 -04:00
|
|
|
sceneMenu.SetOptions(map[int]splashmenu.MenuOption{
|
|
|
|
|
1: {Description: "splash", SelectionEvent: groovy.RESET, Mapping: ebiten.Key1},
|
|
|
|
|
2: {Description: "menu"},
|
|
|
|
|
3: {Description: "swing"},
|
|
|
|
|
4: {Description: "exit", SelectionEvent: groovy.ENDGAME, Mapping: ebiten.Key4},
|
|
|
|
|
})
|
2023-08-21 08:00:24 -04:00
|
|
|
|
2023-08-23 01:24:43 -04:00
|
|
|
m.AddScene(&sceneMenu)
|
2023-08-18 09:45:00 -04:00
|
|
|
}
|