用GO+Ebiten写一个飞机大战

Ebitengine介绍 Ebitengine (旧称 Ebiten) 是一款由Go 语言开发的开源游戏引擎。Ebitengine 的简单 API 可以让您的 2D 游戏开发更加简单快捷,并支持同时发布到多平台。 安装 1$ go get -u github.com/hajimehoshi/ebiten/v2 示例代码 1// Game implements ebiten.Game interface. 2type Game struct{} 3 4// Update proceeds the game state. 5// Update is called every tick (1/60 [s] by default). 6func (g *Game) Update() error { 7 // Write your game's logical update. 8 return nil 9} 10 11// Draw draws the game screen. 12// Draw is called every frame (typically 1/60[s] for 60Hz display). 13func (g *Game) Draw(screen *ebiten.Image) { 14 // Write your game's rendering. 15} 16 17// Layout takes the outside size (e.g., the window size) and returns the (logical) screen size. 18// If you don't have to adjust the screen size with the outside size, just return a fixed size. 19func (g *Game) Layout(outsideWidth, outsideHeight int) (screenWidth, screenHeight int) { 20 return 320, 240 21} 22 23func main() { 24 game := &Game{} 25 // Specify the window size as you like. Here, a doubled size is specified. 26 ebiten.SetWindowSize(640, 480) 27 ebiten.SetWindowTitle("Your game's title") 28 // Call ebiten.RunGame to start your game loop. 29 if err := ebiten.RunGame(game); err != nil { 30 log.Fatal(err) 31 } 32} 框架结构 从上面的示例代码可以看出,Ebitengine的使用十分简单,我们只需要一个实现ebiten.Game这个接口的对象,将其传入RunGame即可。 ...

April 6, 2023