Drawing a Sprite

sprite.go
 1package main
 2
 3import (
 4 "embed"
 5 "log"
 6
 7 "github.com/TheBitDrifter/bappa/blueprint"
 8 "github.com/TheBitDrifter/bappa/blueprint/client"
 9 "github.com/TheBitDrifter/bappa/coldbrew"
10 "github.com/TheBitDrifter/bappa/coldbrew/coldbrew_rendersystems"
11 "github.com/TheBitDrifter/bappa/tteokbokki/spatial"
12 "github.com/TheBitDrifter/bappa/warehouse"
13)
14
15//go:embed assets/*
16var assets embed.FS
17
18func main() {
19 client := coldbrew.NewClient(
20  640,
21  360,
22  10,
23  10,
24  10,
25  assets,
26 )
27
28 client.SetTitle("Rendering a Sprite")
29
30 err := client.RegisterScene(
31  "Example Scene",
32  640,
33  360,
34  exampleScenePlan,
35  []coldbrew.RenderSystem{},
36  []coldbrew.ClientSystem{},
37  []blueprint.CoreSystem{},
38 )
39 if err != nil {
40  log.Fatal(err)
41 }
42
43 client.RegisterGlobalRenderSystem(coldbrew_rendersystems.GlobalRenderer{})
44
45 client.ActivateCamera()
46
47 if err := client.Start(); err != nil {
48  log.Fatal(err)
49 }
50}
51
52func exampleScenePlan(height, width int, sto warehouse.Storage) error {
53 spriteArchetype, err := sto.NewOrExistingArchetype(
54  spatial.Components.Position,
55  client.Components.SpriteBundle,
56 )
57 if err != nil {
58  return err
59 }
60
61 err = spriteArchetype.Generate(1,
62  spatial.NewPosition(255, 20),
63  client.NewSpriteBundle().
64   AddSprite("sprite.png", true),
65 )
66 if err != nil {
67  return err
68 }
69 return nil
70}