Skip to content

The state and stack machine library for the game programming using Ebiten

License

Notifications You must be signed in to change notification settings

PenguinCabinet/pgfsm

Repository files navigation

README of ENGLISH

The Pen Game Programing Finite State Machine

これはGoのゲームライブラリEbiten用のステートマシンライブラリです。

提供する機能

  • ゲームプログラミングのためのスタック型のステートマシン

ドキュメント

採用実績

絶賛募集中です。
このライブラリを採用しているゲームで載せてもいいよという方は是非Issueで教えてください。

Quick start

インストール

go get github.com/PenguinCabinet/pgfsm

Example

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)
	}
}

About

The state and stack machine library for the game programming using Ebiten

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages