From 3f73cef233c9a0bbb514da1f6af8bbb6a031feee Mon Sep 17 00:00:00 2001 From: Shanti Chellaram Date: Sat, 15 Mar 2025 22:11:56 +0900 Subject: [PATCH] Figure out go modules I tried this and a dual-module setup with a cmd/lib structure, but this is what ended up working. --- .gitignore | 1 + go.mod | 13 ++++++++++++- go.sum | 16 ++++++++++++++++ lib/lib.go | 22 ++++++++++++++++++++++ main.go | 19 +++++++++++++++++-- 5 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 .gitignore create mode 100644 go.sum create mode 100644 lib/lib.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bcca669 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/gotris diff --git a/go.mod b/go.mod index 785dbca..eaaab96 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,14 @@ -module gotris/main +module git.shanti.wtf/shanti/gotris go 1.24.1 + +require github.com/hajimehoshi/ebiten/v2 v2.8.6 + +require ( + github.com/ebitengine/gomobile v0.0.0-20240911145611-4856209ac325 // indirect + github.com/ebitengine/hideconsole v1.0.0 // indirect + github.com/ebitengine/purego v0.8.0 // indirect + github.com/jezek/xgb v1.1.1 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.25.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..fcfa8a3 --- /dev/null +++ b/go.sum @@ -0,0 +1,16 @@ +github.com/ebitengine/gomobile v0.0.0-20240911145611-4856209ac325 h1:Gk1XUEttOk0/hb6Tq3WkmutWa0ZLhNn/6fc6XZpM7tM= +github.com/ebitengine/gomobile v0.0.0-20240911145611-4856209ac325/go.mod h1:ulhSQcbPioQrallSuIzF8l1NKQoD7xmMZc5NxzibUMY= +github.com/ebitengine/hideconsole v1.0.0 h1:5J4U0kXF+pv/DhiXt5/lTz0eO5ogJ1iXb8Yj1yReDqE= +github.com/ebitengine/hideconsole v1.0.0/go.mod h1:hTTBTvVYWKBuxPr7peweneWdkUwEuHuB3C1R/ielR1A= +github.com/ebitengine/purego v0.8.0 h1:JbqvnEzRvPpxhCJzJJ2y0RbiZ8nyjccVUrSM3q+GvvE= +github.com/ebitengine/purego v0.8.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= +github.com/hajimehoshi/ebiten/v2 v2.8.6 h1:Dkd/sYI0TYyZRCE7GVxV59XC+WCi2BbGAbIBjXeVC1U= +github.com/hajimehoshi/ebiten/v2 v2.8.6/go.mod h1:cCQ3np7rdmaJa1ZnvslraVlpxNb3wCjEnAP1LHNyXNA= +github.com/jezek/xgb v1.1.1 h1:bE/r8ZZtSv7l9gk6nU0mYx51aXrvnyb44892TwSaqS4= +github.com/jezek/xgb v1.1.1/go.mod h1:nrhwO0FX/enq75I7Y7G8iN1ubpSGZEiA3v9e9GyRFlk= +golang.org/x/image v0.20.0 h1:7cVCUjQwfL18gyBJOmYvptfSHS8Fb3YUDtfLIZ7Nbpw= +golang.org/x/image v0.20.0/go.mod h1:0a88To4CYVBAHp5FXJm8o7QbUl37Vd85ply1vyD8auM= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/lib/lib.go b/lib/lib.go new file mode 100644 index 0000000..80dc8eb --- /dev/null +++ b/lib/lib.go @@ -0,0 +1,22 @@ +package lib + +import "github.com/hajimehoshi/ebiten/v2" + +// Implements ebiten.Game +type TetrisGame struct { +} + +func NewGame() (*TetrisGame, error) { + return &TetrisGame{}, nil +} + +func (g *TetrisGame) Layout(outsideWidth, outsideHeight int) (int, int) { + return 640, 480 +} + +func (g *TetrisGame) Update() error { + return nil +} + +func (g *TetrisGame) Draw(screen *ebiten.Image) { +} diff --git a/main.go b/main.go index a3dd973..358355c 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,22 @@ package main -import "fmt" +import ( + "log" + "git.shanti.wtf/shanti/gotris/lib" + + "github.com/hajimehoshi/ebiten/v2" +) + +// Entry point; initialize global state and begin ebiten game loop func main() { - fmt.Println("Hello, World!") + game, err := lib.NewGame() + if err != nil { + log.Fatal(err) + } + ebiten.SetWindowSize(640, 480) + ebiten.SetWindowTitle("Gotris") + if err := ebiten.RunGame(game); err != nil { + log.Fatal(err) + } }