これはGoのゲームライブラリEbiten用のステートマシンライブラリです。
- ゲームプログラミングのためのスタック型のステートマシン
絶賛募集中です。
このライブラリを採用しているゲームで載せてもいいよという方は是非Issueで教えてください。
go get github.com/PenguinCabinet/pgfsm
package main
import (
"log"
"github.com/PenguinCabinet/pgfsm"
"github.com/hajimehoshi/ebiten/v2"
)
type MyGameState struct {
}
func (sm *MyGameState) Init(
stackdeep int, /*The index of this state.*/
) {
//Init
}
func (sm *MyGameState) Update(
stackdeep int,
) pgfsm.Result {
//Update
return pgfsm.Result{
Code: pgfsm.CodeNil,
NextState: nil,
}
}
func (sm *MyGameState) Draw(screen *ebiten.Image, stackdeep int) {
//Draw
}
func main() {
ebiten.SetWindowSize(640, 480)
ebiten.SetWindowTitle("game title")
gms := &pgfsm.Machine{}
gms.LayoutWidth = 640
gms.LayoutHeight = 480
mySm := &MyGameState{}
gms.StateAdd(mySm)
if err := ebiten.RunGame(gms); err != nil {
log.Fatal(err)
}
}