47 lines
966 B
Go
47 lines
966 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"engo.io/engo"
|
||
|
"engo.io/engo/common"
|
||
|
"engo.io/ecs"
|
||
|
"image/color"
|
||
|
"./systems"
|
||
|
)
|
||
|
|
||
|
type myScene struct {}
|
||
|
|
||
|
type City struct {
|
||
|
ecs.BasicEntity
|
||
|
common.RenderComponent
|
||
|
common.SpaceComponent
|
||
|
}
|
||
|
|
||
|
|
||
|
// Type uniquely defines your game type
|
||
|
func (*myScene) Type() string { return "myGame" }
|
||
|
|
||
|
// Preload is called before loading any assets from the disk,
|
||
|
// to allow you to register / queue them
|
||
|
func (*myScene) Preload() {
|
||
|
engo.Files.Load("city.png")
|
||
|
}
|
||
|
|
||
|
// Setup is called before the main loop starts. It allows you
|
||
|
// to add entities and systems to your Scene.
|
||
|
func (*myScene) Setup(world *ecs.World) {
|
||
|
engo.Input.RegisterButton("AddCity", engo.F1)
|
||
|
common.SetBackground(color.White)
|
||
|
world.AddSystem(&common.RenderSystem{})
|
||
|
world.AddSystem(&common.MouseSystem{})
|
||
|
|
||
|
world.AddSystem(&systems.CityBuildingSystem{})
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
opts := engo.RunOptions{
|
||
|
Title: "Hello World",
|
||
|
Width: 400,
|
||
|
Height: 400,
|
||
|
}
|
||
|
engo.Run(opts, &myScene{})
|
||
|
}
|