sprite stuff
This commit is contained in:
90
tools/spritedit/main.go
Normal file
90
tools/spritedit/main.go
Normal file
@@ -0,0 +1,90 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"github.com/ebitenui/ebitenui"
|
||||
"github.com/ebitenui/ebitenui/image"
|
||||
"github.com/ebitenui/ebitenui/widget"
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
"github.com/hajimehoshi/ebiten/v2/text/v2"
|
||||
"golang.org/x/image/colornames"
|
||||
"golang.org/x/image/font/gofont/goregular"
|
||||
)
|
||||
|
||||
type Editor struct {
|
||||
ui *ebitenui.UI
|
||||
}
|
||||
|
||||
func NewEditor() *Editor {
|
||||
root := widget.NewContainer(
|
||||
widget.ContainerOpts.BackgroundImage(
|
||||
image.NewNineSliceColor(colornames.Gainsboro),
|
||||
))
|
||||
root.AddChild(
|
||||
widget.NewButton(
|
||||
widget.ButtonOpts.TextLabel("Open Sprite Sheet..."),
|
||||
widget.ButtonOpts.TextFace(DefaultFont()),
|
||||
widget.ButtonOpts.TextColor(&widget.ButtonTextColor{
|
||||
Idle: colornames.Gainsboro,
|
||||
Hover: colornames.Gainsboro,
|
||||
Pressed: colornames.Gainsboro,
|
||||
}),
|
||||
widget.ButtonOpts.Image(&widget.ButtonImage{
|
||||
Idle: DefaultNineSlice(colornames.Darkslategray),
|
||||
Hover: DefaultNineSlice(Mix(colornames.Darkslategray, colornames.Mediumseagreen, 0.4)),
|
||||
Disabled: DefaultNineSlice(Mix(colornames.Darkslategray, colornames.Gainsboro, 0.8)),
|
||||
Pressed: PressedNineSlice(Mix(colornames.Darkslategray, colornames.Black, 0.4)),
|
||||
PressedHover: PressedNineSlice(Mix(colornames.Darkslategray, colornames.Black, 0.4)),
|
||||
}),
|
||||
widget.ButtonOpts.WidgetOpts(
|
||||
widget.WidgetOpts.LayoutData(widget.AnchorLayoutData{
|
||||
VerticalPosition: widget.AnchorLayoutPositionCenter,
|
||||
HorizontalPosition: widget.AnchorLayoutPositionCenter,
|
||||
}),
|
||||
widget.WidgetOpts.MinSize(180, 48),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
return &Editor{
|
||||
ui: &ebitenui.UI{Container: root},
|
||||
}
|
||||
}
|
||||
|
||||
func (e *Editor) Update() error {
|
||||
e.ui.Update()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (e *Editor) Draw(screen *ebiten.Image) {
|
||||
e.ui.Draw(screen)
|
||||
}
|
||||
|
||||
func (e *Editor) Layout(w, h int) (int, int) {
|
||||
return w, h
|
||||
}
|
||||
|
||||
func DefaultFont() *text.Face {
|
||||
s, err := text.NewGoTextFaceSource(bytes.NewReader(goregular.TTF))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
var f text.Face
|
||||
|
||||
f = &text.GoTextFace{
|
||||
Source: s,
|
||||
Size: 20,
|
||||
}
|
||||
|
||||
return &f
|
||||
}
|
||||
|
||||
func main() {
|
||||
ebiten.SetWindowSize(480, 320)
|
||||
ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
|
||||
if err := ebiten.RunGame(NewEditor()); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user