// Package sim innehåller ren spellogik som inte känner till Ebitengine: // rutbaserad rörelse, kollision och kamera. Allt här går att testa utan fönster. package sim // Dir är en rörelseriktning i rutnätet. type Dir uint8 // Riktningar. None betyder "ingen input". const ( None Dir = iota Up Down Left Right ) // Delta returnerar förflyttningen i rutor för riktningen. func (d Dir) Delta() (dx, dy int) { switch d { case Up: return 0, -1 case Down: return 0, 1 case Left: return -1, 0 case Right: return 1, 0 } return 0, 0 } // Opposite returnerar motsatt riktning. func (d Dir) Opposite() Dir { switch d { case Up: return Down case Down: return Up case Left: return Right case Right: return Left } return None } func (d Dir) String() string { return [...]string{"none", "up", "down", "left", "right"}[d] }