Adding splash screen.
This commit is contained in:
3
main.go
3
main.go
@@ -33,6 +33,7 @@ func main() {
|
||||
|
||||
func loadScreens(m *screenmanager.Manager) {
|
||||
assets.LoadImages()
|
||||
m.AddScene(&screens.Game{})
|
||||
m.AddScene(screens.NewStartScreen())
|
||||
m.AddScene(screens.NewGame())
|
||||
m.ResetScenes()
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ const (
|
||||
)
|
||||
|
||||
type Game struct {
|
||||
events map[ScreenManagerEvent]func()
|
||||
background *ebiten.Image
|
||||
collisionMask *ebiten.Image
|
||||
projectileMask *ebiten.Image
|
||||
@@ -54,6 +55,13 @@ type Game struct {
|
||||
//pressedButtons map[ebiten.GamepadID][]string
|
||||
}
|
||||
|
||||
func NewGame() *Game {
|
||||
g := &Game{
|
||||
events: make(map[ScreenManagerEvent]func()),
|
||||
}
|
||||
return g
|
||||
}
|
||||
|
||||
func (g *Game) Initialize() {
|
||||
|
||||
origin := gamedata.Coordinates{X: 640 / 2, Y: 480 / 2}
|
||||
@@ -124,6 +132,8 @@ func (g *Game) Update() error {
|
||||
func (g *Game) Draw(screen *ebiten.Image) {
|
||||
|
||||
screen.Clear()
|
||||
|
||||
if g.initialized {
|
||||
screen.DrawImage(g.background, nil)
|
||||
|
||||
g.hero.Draw()
|
||||
@@ -192,7 +202,7 @@ func (g *Game) Draw(screen *ebiten.Image) {
|
||||
|
||||
/*for _, gamepad ebiten.StandardGamepadAxisValue(id, ebiten.StandardGamepadAxisRightStickHorizontal),
|
||||
ebiten.StandardGamepadAxisValue(id, ebiten.StandardGamepadAxisRightStickVertical))*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func (g *Game) Layout(width, height int) (int, int) {
|
||||
@@ -497,5 +507,5 @@ func (g *Game) SetDimensions(a gamedata.Area) {
|
||||
}
|
||||
|
||||
func (g *Game) SetEventHandler(e ScreenManagerEvent, f func()) {
|
||||
|
||||
g.events[e] = f
|
||||
}
|
||||
|
||||
45
screens/start.go
Normal file
45
screens/start.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package screens
|
||||
|
||||
import (
|
||||
"image/color"
|
||||
"mover/fonts"
|
||||
"mover/gamedata"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
"github.com/hajimehoshi/ebiten/v2/inpututil"
|
||||
"github.com/hajimehoshi/ebiten/v2/text"
|
||||
)
|
||||
|
||||
type StartScreen struct {
|
||||
eHandler map[ScreenManagerEvent]func()
|
||||
dimensions gamedata.Area
|
||||
}
|
||||
|
||||
func NewStartScreen() *StartScreen {
|
||||
s := &StartScreen{
|
||||
eHandler: make(map[ScreenManagerEvent]func()),
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
func (s *StartScreen) Update() error {
|
||||
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyEnter) {
|
||||
s.eHandler[EventCompleted]()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *StartScreen) Draw(screen *ebiten.Image) {
|
||||
screen.Clear()
|
||||
text.Draw(screen, "survive", fonts.SurviveFont.ArcadeLarge, 40, 80, color.White)
|
||||
}
|
||||
|
||||
func (s *StartScreen) SetEventHandler(e ScreenManagerEvent, f func()) {
|
||||
s.eHandler[e] = f
|
||||
}
|
||||
|
||||
func (s *StartScreen) SetDimensions(a gamedata.Area) {
|
||||
s.dimensions = a
|
||||
}
|
||||
Reference in New Issue
Block a user