Initial commit
This commit is contained in:
commit
8c884d4cab
23
.editorconfig
Normal file
23
.editorconfig
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Top-most EditorConfig file
|
||||||
|
root = true
|
||||||
|
|
||||||
|
# Common settings for all files. I don't specify indent type here, because
|
||||||
|
# some EditorConfig implementations (notably Atom) will cause default settings
|
||||||
|
# and behaviors (like tab type auto-detection) to be overridden.
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
[*.go]
|
||||||
|
indent_style = tab
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.yml]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
0
.gitignore
vendored
Normal file
0
.gitignore
vendored
Normal file
34
Makefile
Normal file
34
Makefile
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
SHELL := /bin/bash
|
||||||
|
|
||||||
|
VERSION=$(shell grep -e 'Version' doodle.go | head -n 1 | cut -d '"' -f 2)
|
||||||
|
BUILD=$(shell git describe --always)
|
||||||
|
CURDIR=$(shell curdir)
|
||||||
|
|
||||||
|
# Inject the build version (commit hash) into the executable.
|
||||||
|
LDFLAGS := -ldflags "-X main.Build=$(BUILD)"
|
||||||
|
|
||||||
|
# `make setup` to set up a new environment, pull dependencies, etc.
|
||||||
|
.PHONY: setup
|
||||||
|
setup: clean
|
||||||
|
go get -u ./...
|
||||||
|
|
||||||
|
# `make build` to build the binary.
|
||||||
|
.PHONY: build
|
||||||
|
build:
|
||||||
|
gofmt -w .
|
||||||
|
go build $(LDFLAGS) -i -o bin/doodle cmd/doodle/main.go
|
||||||
|
|
||||||
|
# `make run` to run it in debug mode.
|
||||||
|
.PHONY: run
|
||||||
|
run:
|
||||||
|
go run cmd/doodle/main.go -debug
|
||||||
|
|
||||||
|
# `make test` to run unit tests.
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
go test ./...
|
||||||
|
|
||||||
|
# `make clean` cleans everything up.
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -rf bin dist
|
26
cmd/doodle/main.go
Normal file
26
cmd/doodle/main.go
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"flag"
|
||||||
|
|
||||||
|
"github.com/kirsle/doodle"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Build number is the git commit hash.
|
||||||
|
var Build string
|
||||||
|
|
||||||
|
// Command line args
|
||||||
|
var (
|
||||||
|
debug bool
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
flag.BoolVar(&debug, "debug", false, "Debug mode")
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
app := doodle.New(debug)
|
||||||
|
_ = app
|
||||||
|
}
|
59
doodle.go
Normal file
59
doodle.go
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
package doodle
|
||||||
|
|
||||||
|
import "github.com/veandco/go-sdl2/sdl"
|
||||||
|
|
||||||
|
// Version number.
|
||||||
|
const Version = "0.0.0-alpha"
|
||||||
|
|
||||||
|
// Doodle is the game object.
|
||||||
|
type Doodle struct {
|
||||||
|
Debug bool
|
||||||
|
|
||||||
|
window *sdl.Window
|
||||||
|
renderer *sdl.Renderer
|
||||||
|
}
|
||||||
|
|
||||||
|
// New initializes the game object.
|
||||||
|
func New(debug bool) *Doodle {
|
||||||
|
d := &Doodle{
|
||||||
|
Debug: debug,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize SDL.
|
||||||
|
if err := sdl.Init(sdl.INIT_EVERYTHING); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
defer sdl.Quit()
|
||||||
|
|
||||||
|
// Create our window.
|
||||||
|
window, err := sdl.CreateWindow(
|
||||||
|
"Doodle v"+Version,
|
||||||
|
sdl.WINDOWPOS_CENTERED,
|
||||||
|
sdl.WINDOWPOS_CENTERED,
|
||||||
|
800,
|
||||||
|
600,
|
||||||
|
sdl.WINDOW_SHOWN,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
defer window.Destroy()
|
||||||
|
|
||||||
|
surface, err := window.GetSurface()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
rect := sdl.Rect{
|
||||||
|
X: 0,
|
||||||
|
Y: 0,
|
||||||
|
W: 200,
|
||||||
|
H: 200,
|
||||||
|
}
|
||||||
|
surface.FillRect(&rect, 0xffff0000)
|
||||||
|
window.UpdateSurface()
|
||||||
|
|
||||||
|
sdl.Delay(2500)
|
||||||
|
|
||||||
|
return d
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user