minor refactoring
This commit is contained in:
parent
6621a3c6e5
commit
00fd633838
4 changed files with 308 additions and 293 deletions
|
@ -455,6 +455,16 @@ func concatOpts(a, b ebiten.DrawImageOptions) ebiten.DrawImageOptions {
|
|||
// recursive operations, return Skip for components that should be skipped.
|
||||
type VisitFunc func(interface{}) error
|
||||
|
||||
// Many calls a VisitFunc for multiple args, and returns on first non-nil error.
|
||||
func (v VisitFunc) Many(x ...interface{}) error {
|
||||
for _, c := range x {
|
||||
if err := v(c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Skip is an "error" value that can be returned from visitor callbacks. It
|
||||
// tells recursive methods of Game to skip processing the current item and its
|
||||
// descendants, but will otherwise continue processing.
|
||||
|
|
|
@ -58,10 +58,7 @@ func (s *Sprite) Draw(screen *ebiten.Image, opts *ebiten.DrawImageOptions) {
|
|||
|
||||
// Scan visits &s.Actor and &s.Sheet.
|
||||
func (s *Sprite) Scan(visit VisitFunc) error {
|
||||
if err := visit(&s.Actor); err != nil {
|
||||
return err
|
||||
}
|
||||
return visit(&s.Sheet)
|
||||
return visit.Many(&s.Actor, &s.Sheet)
|
||||
}
|
||||
|
||||
// Anim returns the current Anim.
|
||||
|
|
|
@ -119,7 +119,7 @@ func (aw *Awakeman) realUpdate() error {
|
|||
ε = 0.2
|
||||
restitution = -0.3
|
||||
gravity = 0.25
|
||||
airResistance = -0.005 // ⇒ terminal velocity = 10
|
||||
airResistance = -0.005
|
||||
jumpVelocity = -3.3
|
||||
sqrt2 = 1.414213562373095
|
||||
runVelocity = sqrt2
|
||||
|
|
|
@ -45,296 +45,304 @@ func Level1() *engine.Scene {
|
|||
&engine.DrawDAG{
|
||||
ChunkSize: 16,
|
||||
Child: engine.MakeContainer(
|
||||
&engine.PrismMap{
|
||||
ID: "hexagons",
|
||||
PosToWorld: geom.IntMatrix3x4{
|
||||
// For each tile in the X direction, go right by 24 and
|
||||
// forward by 8, etc
|
||||
0: [4]int{24, 0, 0, 0},
|
||||
1: [4]int{0, 16, 0, 0},
|
||||
2: [4]int{8, 0, 16, 0},
|
||||
},
|
||||
PrismSize: geom.Int3{X: 32, Y: 16, Z: 16},
|
||||
PrismTop: []image.Point{
|
||||
{X: 8, Y: 0},
|
||||
{X: 0, Y: 8},
|
||||
{X: 8, Y: 16},
|
||||
{X: 23, Y: 16},
|
||||
{X: 31, Y: 8},
|
||||
{X: 23, Y: 0},
|
||||
},
|
||||
Sheet: engine.Sheet{
|
||||
CellSize: image.Pt(32, 32),
|
||||
Src: engine.ImageRef{Path: "assets/hexprism32.png"},
|
||||
},
|
||||
Map: map[geom.Int3]*engine.Prism{
|
||||
geom.Pt3(11, 0, -6): {},
|
||||
geom.Pt3(12, 0, -6): {},
|
||||
|
||||
geom.Pt3(9, 0, -5): {},
|
||||
geom.Pt3(10, 0, -5): {},
|
||||
geom.Pt3(11, 0, -5): {},
|
||||
geom.Pt3(12, 0, -5): {},
|
||||
|
||||
geom.Pt3(7, 0, -4): {},
|
||||
geom.Pt3(8, 0, -4): {},
|
||||
geom.Pt3(9, 0, -4): {},
|
||||
geom.Pt3(10, 0, -4): {},
|
||||
geom.Pt3(11, 0, -4): {},
|
||||
geom.Pt3(12, 0, -4): {},
|
||||
|
||||
geom.Pt3(5, 0, -3): {},
|
||||
geom.Pt3(6, 0, -3): {},
|
||||
geom.Pt3(7, 0, -3): {},
|
||||
geom.Pt3(8, 0, -3): {},
|
||||
geom.Pt3(9, 0, -3): {},
|
||||
geom.Pt3(10, 0, -3): {},
|
||||
geom.Pt3(11, 0, -3): {},
|
||||
geom.Pt3(12, 0, -3): {},
|
||||
|
||||
geom.Pt3(3, 0, -2): {},
|
||||
geom.Pt3(4, 0, -2): {},
|
||||
geom.Pt3(5, 0, -2): {},
|
||||
geom.Pt3(6, 0, -2): {},
|
||||
geom.Pt3(7, 0, -2): {},
|
||||
geom.Pt3(8, 0, -2): {},
|
||||
geom.Pt3(9, 0, -2): {},
|
||||
geom.Pt3(10, 0, -2): {},
|
||||
geom.Pt3(11, 0, -2): {},
|
||||
geom.Pt3(12, 0, -2): {},
|
||||
|
||||
geom.Pt3(1, 0, -1): {},
|
||||
geom.Pt3(2, 0, -1): {},
|
||||
geom.Pt3(3, 0, -1): {},
|
||||
geom.Pt3(4, 0, -1): {},
|
||||
geom.Pt3(5, 0, -1): {},
|
||||
geom.Pt3(6, 0, -1): {},
|
||||
geom.Pt3(7, 0, -1): {},
|
||||
geom.Pt3(8, 0, -1): {},
|
||||
geom.Pt3(9, 0, -1): {},
|
||||
geom.Pt3(10, 0, -1): {},
|
||||
geom.Pt3(11, 0, -1): {},
|
||||
geom.Pt3(12, 0, -1): {},
|
||||
|
||||
geom.Pt3(0, 0, 0): {},
|
||||
geom.Pt3(1, 0, 0): {},
|
||||
geom.Pt3(2, 0, 0): {},
|
||||
geom.Pt3(3, 0, 0): {},
|
||||
geom.Pt3(4, 0, 0): {},
|
||||
geom.Pt3(5, 0, 0): {},
|
||||
geom.Pt3(6, 0, 0): {},
|
||||
geom.Pt3(7, 0, 0): {},
|
||||
geom.Pt3(8, 0, 0): {},
|
||||
geom.Pt3(9, 0, 0): {},
|
||||
geom.Pt3(10, 0, 0): {},
|
||||
geom.Pt3(11, 0, 0): {},
|
||||
geom.Pt3(12, 0, 0): {},
|
||||
|
||||
geom.Pt3(0, 0, 1): {},
|
||||
geom.Pt3(1, 0, 1): {},
|
||||
geom.Pt3(2, 0, 1): {},
|
||||
geom.Pt3(3, 0, 1): {},
|
||||
geom.Pt3(4, 0, 1): {},
|
||||
geom.Pt3(5, 0, 1): {},
|
||||
geom.Pt3(6, 0, 1): {},
|
||||
geom.Pt3(7, 0, 1): {},
|
||||
geom.Pt3(8, 0, 1): {},
|
||||
geom.Pt3(9, 0, 1): {},
|
||||
geom.Pt3(10, 0, 1): {},
|
||||
geom.Pt3(11, 0, 1): {},
|
||||
geom.Pt3(12, 0, 1): {},
|
||||
|
||||
geom.Pt3(0, 0, 2): {},
|
||||
geom.Pt3(1, 0, 2): {},
|
||||
geom.Pt3(2, 0, 2): {},
|
||||
geom.Pt3(3, 0, 2): {},
|
||||
geom.Pt3(4, 0, 2): {},
|
||||
geom.Pt3(5, 0, 2): {},
|
||||
geom.Pt3(6, 0, 2): {},
|
||||
geom.Pt3(7, 0, 2): {},
|
||||
geom.Pt3(8, 0, 2): {},
|
||||
geom.Pt3(9, 0, 2): {},
|
||||
geom.Pt3(10, 0, 2): {},
|
||||
geom.Pt3(11, 0, 2): {},
|
||||
geom.Pt3(12, 0, 2): {},
|
||||
|
||||
geom.Pt3(0, 0, 3): {},
|
||||
geom.Pt3(1, 0, 3): {},
|
||||
geom.Pt3(2, 0, 3): {},
|
||||
geom.Pt3(3, 0, 3): {},
|
||||
geom.Pt3(4, 0, 3): {},
|
||||
geom.Pt3(5, 0, 3): {},
|
||||
geom.Pt3(6, 0, 3): {},
|
||||
geom.Pt3(7, 0, 3): {},
|
||||
geom.Pt3(8, 0, 3): {},
|
||||
geom.Pt3(9, 0, 3): {},
|
||||
geom.Pt3(10, 0, 3): {},
|
||||
geom.Pt3(11, 0, 3): {},
|
||||
geom.Pt3(12, 0, 3): {},
|
||||
|
||||
geom.Pt3(0, 0, 4): {},
|
||||
geom.Pt3(1, 0, 4): {},
|
||||
geom.Pt3(2, 0, 4): {},
|
||||
geom.Pt3(3, 0, 4): {},
|
||||
geom.Pt3(4, 0, 4): {},
|
||||
geom.Pt3(5, 0, 4): {},
|
||||
geom.Pt3(6, 0, 4): {},
|
||||
geom.Pt3(7, 0, 4): {},
|
||||
geom.Pt3(8, 0, 4): {},
|
||||
geom.Pt3(9, 0, 4): {},
|
||||
geom.Pt3(10, 0, 4): {},
|
||||
geom.Pt3(11, 0, 4): {},
|
||||
geom.Pt3(12, 0, 4): {},
|
||||
|
||||
geom.Pt3(0, 0, 5): {},
|
||||
geom.Pt3(1, 0, 5): {},
|
||||
geom.Pt3(2, 0, 5): {},
|
||||
geom.Pt3(3, 0, 5): {},
|
||||
geom.Pt3(4, 0, 5): {},
|
||||
geom.Pt3(5, 0, 5): {},
|
||||
geom.Pt3(6, 0, 5): {},
|
||||
geom.Pt3(6, -1, 5): {Cell: 1},
|
||||
geom.Pt3(7, 0, 5): {},
|
||||
geom.Pt3(8, 0, 5): {},
|
||||
geom.Pt3(9, 0, 5): {},
|
||||
geom.Pt3(10, 0, 5): {},
|
||||
geom.Pt3(11, 0, 5): {},
|
||||
geom.Pt3(12, 0, 5): {},
|
||||
|
||||
geom.Pt3(0, 0, 6): {},
|
||||
geom.Pt3(1, 0, 6): {},
|
||||
geom.Pt3(2, 0, 6): {},
|
||||
geom.Pt3(3, 0, 6): {},
|
||||
geom.Pt3(4, 0, 6): {},
|
||||
geom.Pt3(5, 0, 6): {},
|
||||
geom.Pt3(6, 0, 6): {},
|
||||
geom.Pt3(7, 0, 6): {},
|
||||
geom.Pt3(8, 0, 6): {},
|
||||
geom.Pt3(9, 0, 6): {},
|
||||
geom.Pt3(10, 0, 6): {},
|
||||
geom.Pt3(11, 0, 6): {},
|
||||
geom.Pt3(12, 0, 6): {},
|
||||
|
||||
geom.Pt3(0, 0, 7): {},
|
||||
geom.Pt3(1, 0, 7): {},
|
||||
geom.Pt3(2, 0, 7): {},
|
||||
geom.Pt3(3, 0, 7): {},
|
||||
geom.Pt3(4, 0, 7): {},
|
||||
geom.Pt3(5, 0, 7): {},
|
||||
geom.Pt3(6, 0, 7): {},
|
||||
geom.Pt3(7, 0, 7): {},
|
||||
geom.Pt3(8, 0, 7): {},
|
||||
geom.Pt3(9, 0, 7): {},
|
||||
geom.Pt3(10, 0, 7): {},
|
||||
geom.Pt3(11, 0, 7): {},
|
||||
geom.Pt3(12, 0, 7): {},
|
||||
|
||||
geom.Pt3(0, 0, 8): {},
|
||||
geom.Pt3(1, 0, 8): {},
|
||||
geom.Pt3(2, 0, 8): {},
|
||||
geom.Pt3(3, 0, 8): {},
|
||||
geom.Pt3(4, 0, 8): {},
|
||||
geom.Pt3(5, 0, 8): {},
|
||||
geom.Pt3(6, 0, 8): {},
|
||||
geom.Pt3(7, 0, 8): {},
|
||||
geom.Pt3(8, 0, 8): {},
|
||||
geom.Pt3(9, 0, 8): {},
|
||||
geom.Pt3(10, 0, 8): {},
|
||||
|
||||
geom.Pt3(0, 0, 9): {},
|
||||
geom.Pt3(1, 0, 9): {},
|
||||
geom.Pt3(2, 0, 9): {},
|
||||
geom.Pt3(3, 0, 9): {},
|
||||
geom.Pt3(4, 0, 9): {},
|
||||
geom.Pt3(5, 0, 9): {},
|
||||
geom.Pt3(6, 0, 9): {},
|
||||
geom.Pt3(7, 0, 9): {},
|
||||
geom.Pt3(8, 0, 9): {},
|
||||
|
||||
geom.Pt3(0, 0, 10): {},
|
||||
geom.Pt3(1, 0, 10): {},
|
||||
geom.Pt3(2, 0, 10): {},
|
||||
geom.Pt3(3, 0, 10): {},
|
||||
geom.Pt3(4, 0, 10): {},
|
||||
geom.Pt3(5, 0, 10): {},
|
||||
geom.Pt3(6, 0, 10): {},
|
||||
|
||||
geom.Pt3(0, 0, 11): {},
|
||||
geom.Pt3(1, 0, 11): {},
|
||||
geom.Pt3(2, 0, 11): {},
|
||||
geom.Pt3(3, 0, 11): {},
|
||||
geom.Pt3(4, 0, 11): {},
|
||||
|
||||
geom.Pt3(0, 0, 12): {},
|
||||
geom.Pt3(1, 0, 12): {},
|
||||
geom.Pt3(2, 0, 12): {},
|
||||
|
||||
geom.Pt3(0, 0, 13): {},
|
||||
}, // Map
|
||||
}, // PrismMap
|
||||
&Awakeman{
|
||||
CameraID: "game_camera",
|
||||
ToastID: "toast",
|
||||
Sprite: engine.Sprite{
|
||||
Actor: engine.Actor{
|
||||
CollisionDomain: "level_1",
|
||||
Pos: geom.Pt3(100, -64, 100),
|
||||
Bounds: geom.Box{
|
||||
Min: geom.Pt3(-4, -15, -1),
|
||||
Max: geom.Pt3(4, 1, 1),
|
||||
},
|
||||
},
|
||||
DrawOffset: image.Pt(-5, -15),
|
||||
Sheet: engine.Sheet{
|
||||
AnimDefs: map[string]*engine.AnimDef{
|
||||
"idle_left": {Steps: []engine.AnimStep{
|
||||
{Cell: 1, Duration: 60},
|
||||
}},
|
||||
"idle_right": {Steps: []engine.AnimStep{
|
||||
{Cell: 0, Duration: 60},
|
||||
}},
|
||||
"run_left": {Steps: []engine.AnimStep{
|
||||
{Cell: 14, Duration: 3},
|
||||
{Cell: 15, Duration: 5},
|
||||
{Cell: 16, Duration: 3},
|
||||
{Cell: 17, Duration: 3},
|
||||
}},
|
||||
"run_right": {Steps: []engine.AnimStep{
|
||||
{Cell: 10, Duration: 3},
|
||||
{Cell: 11, Duration: 5},
|
||||
{Cell: 12, Duration: 3},
|
||||
{Cell: 13, Duration: 3},
|
||||
}},
|
||||
"run_vert": {Steps: []engine.AnimStep{
|
||||
{Cell: 18, Duration: 3},
|
||||
{Cell: 19, Duration: 5},
|
||||
{Cell: 20, Duration: 3},
|
||||
{Cell: 21, Duration: 3},
|
||||
{Cell: 22, Duration: 3},
|
||||
{Cell: 23, Duration: 5},
|
||||
{Cell: 24, Duration: 3},
|
||||
{Cell: 25, Duration: 3},
|
||||
}},
|
||||
"walk_left": {Steps: []engine.AnimStep{
|
||||
{Cell: 2, Duration: 6},
|
||||
{Cell: 3, Duration: 6},
|
||||
{Cell: 4, Duration: 6},
|
||||
{Cell: 5, Duration: 6},
|
||||
}},
|
||||
"walk_right": {Steps: []engine.AnimStep{
|
||||
{Cell: 6, Duration: 6},
|
||||
{Cell: 7, Duration: 6},
|
||||
{Cell: 8, Duration: 6},
|
||||
{Cell: 9, Duration: 6},
|
||||
}},
|
||||
},
|
||||
CellSize: image.Pt(10, 16),
|
||||
Src: engine.ImageRef{Path: "assets/aw.png"},
|
||||
}, // Sheet
|
||||
}, // Sprite
|
||||
}, // Awakeman
|
||||
level1PrismMap(),
|
||||
level1Awakeman(),
|
||||
), // Container
|
||||
}, // DrawDAG
|
||||
), // Container
|
||||
} // Scene
|
||||
}
|
||||
|
||||
func level1PrismMap() *engine.PrismMap {
|
||||
return &engine.PrismMap{
|
||||
ID: "hexagons",
|
||||
PosToWorld: geom.IntMatrix3x4{
|
||||
// For each tile in the X direction, go right by 24 and
|
||||
// forward by 8, etc
|
||||
0: [4]int{24, 0, 0, 0},
|
||||
1: [4]int{0, 16, 0, 0},
|
||||
2: [4]int{8, 0, 16, 0},
|
||||
},
|
||||
PrismSize: geom.Int3{X: 32, Y: 16, Z: 16},
|
||||
PrismTop: []image.Point{
|
||||
{X: 8, Y: 0},
|
||||
{X: 0, Y: 8},
|
||||
{X: 8, Y: 16},
|
||||
{X: 23, Y: 16},
|
||||
{X: 31, Y: 8},
|
||||
{X: 23, Y: 0},
|
||||
},
|
||||
Sheet: engine.Sheet{
|
||||
CellSize: image.Pt(32, 32),
|
||||
Src: engine.ImageRef{Path: "assets/hexprism32.png"},
|
||||
},
|
||||
Map: map[geom.Int3]*engine.Prism{
|
||||
geom.Pt3(11, 0, -6): {},
|
||||
geom.Pt3(12, 0, -6): {},
|
||||
|
||||
geom.Pt3(9, 0, -5): {},
|
||||
geom.Pt3(10, 0, -5): {},
|
||||
geom.Pt3(11, 0, -5): {},
|
||||
geom.Pt3(12, 0, -5): {},
|
||||
|
||||
geom.Pt3(7, 0, -4): {},
|
||||
geom.Pt3(8, 0, -4): {},
|
||||
geom.Pt3(9, 0, -4): {},
|
||||
geom.Pt3(10, 0, -4): {},
|
||||
geom.Pt3(11, 0, -4): {},
|
||||
geom.Pt3(12, 0, -4): {},
|
||||
|
||||
geom.Pt3(5, 0, -3): {},
|
||||
geom.Pt3(6, 0, -3): {},
|
||||
geom.Pt3(7, 0, -3): {},
|
||||
geom.Pt3(8, 0, -3): {},
|
||||
geom.Pt3(9, 0, -3): {},
|
||||
geom.Pt3(10, 0, -3): {},
|
||||
geom.Pt3(11, 0, -3): {},
|
||||
geom.Pt3(12, 0, -3): {},
|
||||
|
||||
geom.Pt3(3, 0, -2): {},
|
||||
geom.Pt3(4, 0, -2): {},
|
||||
geom.Pt3(5, 0, -2): {},
|
||||
geom.Pt3(6, 0, -2): {},
|
||||
geom.Pt3(7, 0, -2): {},
|
||||
geom.Pt3(8, 0, -2): {},
|
||||
geom.Pt3(9, 0, -2): {},
|
||||
geom.Pt3(10, 0, -2): {},
|
||||
geom.Pt3(11, 0, -2): {},
|
||||
geom.Pt3(12, 0, -2): {},
|
||||
|
||||
geom.Pt3(1, 0, -1): {},
|
||||
geom.Pt3(2, 0, -1): {},
|
||||
geom.Pt3(3, 0, -1): {},
|
||||
geom.Pt3(4, 0, -1): {},
|
||||
geom.Pt3(5, 0, -1): {},
|
||||
geom.Pt3(6, 0, -1): {},
|
||||
geom.Pt3(7, 0, -1): {},
|
||||
geom.Pt3(8, 0, -1): {},
|
||||
geom.Pt3(9, 0, -1): {},
|
||||
geom.Pt3(10, 0, -1): {},
|
||||
geom.Pt3(11, 0, -1): {},
|
||||
geom.Pt3(12, 0, -1): {},
|
||||
|
||||
geom.Pt3(0, 0, 0): {},
|
||||
geom.Pt3(1, 0, 0): {},
|
||||
geom.Pt3(2, 0, 0): {},
|
||||
geom.Pt3(3, 0, 0): {},
|
||||
geom.Pt3(4, 0, 0): {},
|
||||
geom.Pt3(5, 0, 0): {},
|
||||
geom.Pt3(6, 0, 0): {},
|
||||
geom.Pt3(7, 0, 0): {},
|
||||
geom.Pt3(8, 0, 0): {},
|
||||
geom.Pt3(9, 0, 0): {},
|
||||
geom.Pt3(10, 0, 0): {},
|
||||
geom.Pt3(11, 0, 0): {},
|
||||
geom.Pt3(12, 0, 0): {},
|
||||
|
||||
geom.Pt3(0, 0, 1): {},
|
||||
geom.Pt3(1, 0, 1): {},
|
||||
geom.Pt3(2, 0, 1): {},
|
||||
geom.Pt3(3, 0, 1): {},
|
||||
geom.Pt3(4, 0, 1): {},
|
||||
geom.Pt3(5, 0, 1): {},
|
||||
geom.Pt3(6, 0, 1): {},
|
||||
geom.Pt3(7, 0, 1): {},
|
||||
geom.Pt3(8, 0, 1): {},
|
||||
geom.Pt3(9, 0, 1): {},
|
||||
geom.Pt3(10, 0, 1): {},
|
||||
geom.Pt3(11, 0, 1): {},
|
||||
geom.Pt3(12, 0, 1): {},
|
||||
|
||||
geom.Pt3(0, 0, 2): {},
|
||||
geom.Pt3(1, 0, 2): {},
|
||||
geom.Pt3(2, 0, 2): {},
|
||||
geom.Pt3(3, 0, 2): {},
|
||||
geom.Pt3(4, 0, 2): {},
|
||||
geom.Pt3(5, 0, 2): {},
|
||||
geom.Pt3(6, 0, 2): {},
|
||||
geom.Pt3(7, 0, 2): {},
|
||||
geom.Pt3(8, 0, 2): {},
|
||||
geom.Pt3(9, 0, 2): {},
|
||||
geom.Pt3(10, 0, 2): {},
|
||||
geom.Pt3(11, 0, 2): {},
|
||||
geom.Pt3(12, 0, 2): {},
|
||||
|
||||
geom.Pt3(0, 0, 3): {},
|
||||
geom.Pt3(1, 0, 3): {},
|
||||
geom.Pt3(2, 0, 3): {},
|
||||
geom.Pt3(3, 0, 3): {},
|
||||
geom.Pt3(4, 0, 3): {},
|
||||
geom.Pt3(5, 0, 3): {},
|
||||
geom.Pt3(6, 0, 3): {},
|
||||
geom.Pt3(7, 0, 3): {},
|
||||
geom.Pt3(8, 0, 3): {},
|
||||
geom.Pt3(9, 0, 3): {},
|
||||
geom.Pt3(10, 0, 3): {},
|
||||
geom.Pt3(11, 0, 3): {},
|
||||
geom.Pt3(12, 0, 3): {},
|
||||
|
||||
geom.Pt3(0, 0, 4): {},
|
||||
geom.Pt3(1, 0, 4): {},
|
||||
geom.Pt3(2, 0, 4): {},
|
||||
geom.Pt3(3, 0, 4): {},
|
||||
geom.Pt3(4, 0, 4): {},
|
||||
geom.Pt3(5, 0, 4): {},
|
||||
geom.Pt3(6, 0, 4): {},
|
||||
geom.Pt3(7, 0, 4): {},
|
||||
geom.Pt3(8, 0, 4): {},
|
||||
geom.Pt3(9, 0, 4): {},
|
||||
geom.Pt3(10, 0, 4): {},
|
||||
geom.Pt3(11, 0, 4): {},
|
||||
geom.Pt3(12, 0, 4): {},
|
||||
|
||||
geom.Pt3(0, 0, 5): {},
|
||||
geom.Pt3(1, 0, 5): {},
|
||||
geom.Pt3(2, 0, 5): {},
|
||||
geom.Pt3(3, 0, 5): {},
|
||||
geom.Pt3(4, 0, 5): {},
|
||||
geom.Pt3(5, 0, 5): {},
|
||||
geom.Pt3(6, 0, 5): {},
|
||||
geom.Pt3(6, -1, 5): {Cell: 1},
|
||||
geom.Pt3(7, 0, 5): {},
|
||||
geom.Pt3(8, 0, 5): {},
|
||||
geom.Pt3(9, 0, 5): {},
|
||||
geom.Pt3(10, 0, 5): {},
|
||||
geom.Pt3(11, 0, 5): {},
|
||||
geom.Pt3(12, 0, 5): {},
|
||||
|
||||
geom.Pt3(0, 0, 6): {},
|
||||
geom.Pt3(1, 0, 6): {},
|
||||
geom.Pt3(2, 0, 6): {},
|
||||
geom.Pt3(3, 0, 6): {},
|
||||
geom.Pt3(4, 0, 6): {},
|
||||
geom.Pt3(5, 0, 6): {},
|
||||
geom.Pt3(6, 0, 6): {},
|
||||
geom.Pt3(7, 0, 6): {},
|
||||
geom.Pt3(8, 0, 6): {},
|
||||
geom.Pt3(9, 0, 6): {},
|
||||
geom.Pt3(10, 0, 6): {},
|
||||
geom.Pt3(11, 0, 6): {},
|
||||
geom.Pt3(12, 0, 6): {},
|
||||
|
||||
geom.Pt3(0, 0, 7): {},
|
||||
geom.Pt3(1, 0, 7): {},
|
||||
geom.Pt3(2, 0, 7): {},
|
||||
geom.Pt3(3, 0, 7): {},
|
||||
geom.Pt3(4, 0, 7): {},
|
||||
geom.Pt3(5, 0, 7): {},
|
||||
geom.Pt3(6, 0, 7): {},
|
||||
geom.Pt3(7, 0, 7): {},
|
||||
geom.Pt3(8, 0, 7): {},
|
||||
geom.Pt3(9, 0, 7): {},
|
||||
geom.Pt3(10, 0, 7): {},
|
||||
geom.Pt3(11, 0, 7): {},
|
||||
geom.Pt3(12, 0, 7): {},
|
||||
|
||||
geom.Pt3(0, 0, 8): {},
|
||||
geom.Pt3(1, 0, 8): {},
|
||||
geom.Pt3(2, 0, 8): {},
|
||||
geom.Pt3(3, 0, 8): {},
|
||||
geom.Pt3(4, 0, 8): {},
|
||||
geom.Pt3(5, 0, 8): {},
|
||||
geom.Pt3(6, 0, 8): {},
|
||||
geom.Pt3(7, 0, 8): {},
|
||||
geom.Pt3(8, 0, 8): {},
|
||||
geom.Pt3(9, 0, 8): {},
|
||||
geom.Pt3(10, 0, 8): {},
|
||||
|
||||
geom.Pt3(0, 0, 9): {},
|
||||
geom.Pt3(1, 0, 9): {},
|
||||
geom.Pt3(2, 0, 9): {},
|
||||
geom.Pt3(3, 0, 9): {},
|
||||
geom.Pt3(4, 0, 9): {},
|
||||
geom.Pt3(5, 0, 9): {},
|
||||
geom.Pt3(6, 0, 9): {},
|
||||
geom.Pt3(7, 0, 9): {},
|
||||
geom.Pt3(8, 0, 9): {},
|
||||
|
||||
geom.Pt3(0, 0, 10): {},
|
||||
geom.Pt3(1, 0, 10): {},
|
||||
geom.Pt3(2, 0, 10): {},
|
||||
geom.Pt3(3, 0, 10): {},
|
||||
geom.Pt3(4, 0, 10): {},
|
||||
geom.Pt3(5, 0, 10): {},
|
||||
geom.Pt3(6, 0, 10): {},
|
||||
|
||||
geom.Pt3(0, 0, 11): {},
|
||||
geom.Pt3(1, 0, 11): {},
|
||||
geom.Pt3(2, 0, 11): {},
|
||||
geom.Pt3(3, 0, 11): {},
|
||||
geom.Pt3(4, 0, 11): {},
|
||||
|
||||
geom.Pt3(0, 0, 12): {},
|
||||
geom.Pt3(1, 0, 12): {},
|
||||
geom.Pt3(2, 0, 12): {},
|
||||
|
||||
geom.Pt3(0, 0, 13): {},
|
||||
}, // Map
|
||||
} // PrismMap
|
||||
}
|
||||
|
||||
func level1Awakeman() *Awakeman {
|
||||
return &Awakeman{
|
||||
CameraID: "game_camera",
|
||||
ToastID: "toast",
|
||||
Sprite: engine.Sprite{
|
||||
Actor: engine.Actor{
|
||||
CollisionDomain: "level_1",
|
||||
Pos: geom.Pt3(100, -64, 100),
|
||||
Bounds: geom.Box{
|
||||
Min: geom.Pt3(-4, -15, -1),
|
||||
Max: geom.Pt3(4, 1, 1),
|
||||
},
|
||||
},
|
||||
DrawOffset: image.Pt(-5, -15),
|
||||
Sheet: engine.Sheet{
|
||||
AnimDefs: map[string]*engine.AnimDef{
|
||||
"idle_left": {Steps: []engine.AnimStep{
|
||||
{Cell: 1, Duration: 60},
|
||||
}},
|
||||
"idle_right": {Steps: []engine.AnimStep{
|
||||
{Cell: 0, Duration: 60},
|
||||
}},
|
||||
"run_left": {Steps: []engine.AnimStep{
|
||||
{Cell: 14, Duration: 3},
|
||||
{Cell: 15, Duration: 5},
|
||||
{Cell: 16, Duration: 3},
|
||||
{Cell: 17, Duration: 3},
|
||||
}},
|
||||
"run_right": {Steps: []engine.AnimStep{
|
||||
{Cell: 10, Duration: 3},
|
||||
{Cell: 11, Duration: 5},
|
||||
{Cell: 12, Duration: 3},
|
||||
{Cell: 13, Duration: 3},
|
||||
}},
|
||||
"run_vert": {Steps: []engine.AnimStep{
|
||||
{Cell: 18, Duration: 3},
|
||||
{Cell: 19, Duration: 5},
|
||||
{Cell: 20, Duration: 3},
|
||||
{Cell: 21, Duration: 3},
|
||||
{Cell: 22, Duration: 3},
|
||||
{Cell: 23, Duration: 5},
|
||||
{Cell: 24, Duration: 3},
|
||||
{Cell: 25, Duration: 3},
|
||||
}},
|
||||
"walk_left": {Steps: []engine.AnimStep{
|
||||
{Cell: 2, Duration: 6},
|
||||
{Cell: 3, Duration: 6},
|
||||
{Cell: 4, Duration: 6},
|
||||
{Cell: 5, Duration: 6},
|
||||
}},
|
||||
"walk_right": {Steps: []engine.AnimStep{
|
||||
{Cell: 6, Duration: 6},
|
||||
{Cell: 7, Duration: 6},
|
||||
{Cell: 8, Duration: 6},
|
||||
{Cell: 9, Duration: 6},
|
||||
}},
|
||||
},
|
||||
CellSize: image.Pt(10, 16),
|
||||
Src: engine.ImageRef{Path: "assets/aw.png"},
|
||||
}, // Sheet
|
||||
}, // Sprite
|
||||
} // Awakeman
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue