Skip to content

Instantly share code, notes, and snippets.

@hajimehoshi
Created June 4, 2020 13:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hajimehoshi/13f370143bf67fc945de0e45038746e6 to your computer and use it in GitHub Desktop.
Save hajimehoshi/13f370143bf67fc945de0e45038746e6 to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/audio"
"github.com/hajimehoshi/ebiten/audio/vorbis"
raudio "github.com/hajimehoshi/ebiten/examples/resources/audio"
"github.com/hajimehoshi/ebiten/ebitenutil"
)
type game struct {
audioContext *audio.Context
players []*audio.Player
started bool
}
const numPlayers int = 6
func (g *game) Update(screen *ebiten.Image) error {
if !g.started {
for _, p := range g.players {
p.Play()
}
g.started = false
}
return nil
}
func (g *game) Draw(screen *ebiten.Image) {
ebitenutil.DebugPrint(screen, fmt.Sprint(g.players[0].Current()))
}
func (g *game) Layout(outsideWidth, outsideHeight int) (screenWidth, screenHeight int) {
return outsideWidth, outsideHeight
}
func main() {
var g game
var err error
g.audioContext, err = audio.NewContext(44100)
if err != nil {
panic(err)
}
g.players = make([]*audio.Player, numPlayers)
for pos := 0; pos < numPlayers; pos++ {
sound, err := vorbis.Decode(g.audioContext, audio.BytesReadSeekCloser(raudio.Ragtime_ogg))
if err != nil {
panic(err)
}
g.players[pos], err = audio.NewPlayer(g.audioContext, sound)
if err != nil {
panic(err)
}
}
if err := ebiten.RunGame(&g); err != nil {
panic(err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment