Chapter 12: Audio and a State Machine for Menus, Gameplay, and Pause

https://leanpub.com/gameprogramminggolang

Technical requirements

https://leanpub.com/gameprogramminggolang

Sound: looping music

https://leanpub.com/gameprogramminggolang

How Ebitengine handles audio

https://leanpub.com/gameprogramminggolang

The audio manager

https://leanpub.com/gameprogramminggolang

Loading the sounds

https://leanpub.com/gameprogramminggolang

Where the music plays

https://leanpub.com/gameprogramminggolang

What is a state machine, and why games use it

https://leanpub.com/gameprogramminggolang

Understanding the state machine

https://leanpub.com/gameprogramminggolang

The four states

https://leanpub.com/gameprogramminggolang

The level-up panel stays inside Game

https://leanpub.com/gameprogramminggolang

Decoupling the core from the game package

https://leanpub.com/gameprogramminggolang

The State and StateMachine types

https://leanpub.com/gameprogramminggolang

The State interface

https://leanpub.com/gameprogramminggolang

IDs, registration, and switching

https://leanpub.com/gameprogramminggolang

Quitting the process

https://leanpub.com/gameprogramminggolang

App: the single ebiten.Game

https://leanpub.com/gameprogramminggolang

Run and window setup

https://leanpub.com/gameprogramminggolang

Shared menu helpers

https://leanpub.com/gameprogramminggolang

The main menu state

https://leanpub.com/gameprogramminggolang

The game state: delegating to Game

https://leanpub.com/gameprogramminggolang

The pause state

https://leanpub.com/gameprogramminggolang

The options state

https://leanpub.com/gameprogramminggolang

The pause action and IsPausePressed

https://leanpub.com/gameprogramminggolang

The main package

https://leanpub.com/gameprogramminggolang

Transition diagram

https://leanpub.com/gameprogramminggolang

Summary

https://leanpub.com/gameprogramminggolang