Documentation
¶
Index ¶
- Variables
- func CreateGif(window Window, delayBetweenScreenshots time.Duration, ...)
- func CreateGifDithered(window Window, delayBetweenScreenshots time.Duration, ...)
- func CreateGifNearestPlan9(window Window, delayBetweenScreenshots time.Duration, ...)
- func GetNewestJustPressedFromChan(justPressedChan chan *turtlemodel.UserInput) *turtlemodel.UserInput
- func Lerp[T constraints.Integer | constraints.Float](a, b T, ratio float64) T
- func LerpColor(a, b color.RGBA, ratio float64) color.RGBA
- func LoadSpriteFile(path string) (image.Image, error)
- func Start(params Params, drawFunc func(Window))
- func TakeScreenshot(window Window, outputPNGPath string) error
- func TakeScreenshotVideo(window Window, delayBetweenScreenshots time.Duration, frameCount int) []image.Image
- type Params
- type Window
Constants ¶
This section is empty.
Variables ¶
var ( // Black to white Black color.RGBA = color.RGBA{0x00, 0x00, 0x00, 0xFF} // #000000 DarkGray color.RGBA = color.RGBA{0x26, 0x26, 0x26, 0xFF} // #262626 Gray color.RGBA = color.RGBA{0x80, 0x80, 0x80, 0xFF} // #808080 LightGray color.RGBA = color.RGBA{0xD3, 0xD3, 0xD3, 0xFF} // #D3D3D3 White color.RGBA = color.RGBA{0xFF, 0xFF, 0xFF, 0xFF} // #FFFFFF // Primary Colors Red color.RGBA = color.RGBA{0xFF, 0x00, 0x00, 0xFF} // #FF0000 Lime color.RGBA = color.RGBA{0x00, 0xFF, 0x00, 0xFF} // #00FF00 Blue color.RGBA = color.RGBA{0x00, 0x00, 0xFF, 0xFF} // #0000FF // half strength primary colors Maroon color.RGBA = color.RGBA{0x80, 0x00, 0x00, 0xFF} // #800000 Green color.RGBA = color.RGBA{0x00, 0x80, 0x00, 0xFF} // #008000 // full strength primary mixes Yellow color.RGBA = color.RGBA{0xFF, 0xFF, 0x00, 0xFF} // #FFFF00 Aqua color.RGBA = color.RGBA{0x00, 0xFF, 0xFF, 0xFF} // #00FFFF Cyan = Aqua // #00FFFF Magenta color.RGBA = color.RGBA{0xFF, 0x00, 0xFF, 0xFF} // #FF00FF Fuchsia = Magenta // #FF00FF // half strength primary mixes Olive color.RGBA = color.RGBA{0x80, 0x80, 0x00, 0xFF} // #808000 Purple color.RGBA = color.RGBA{0x80, 0x00, 0x80, 0xFF} // #800080 Teal color.RGBA = color.RGBA{0x00, 0x80, 0x80, 0xFF} // #008080 // Other interesting colors Orange color.RGBA = color.RGBA{0xFF, 0xA5, 0x00, 0xFF} // #FFA500 Indigo color.RGBA = color.RGBA{0x4B, 0x00, 0x82, 0xFF} // #4B0082 Violet color.RGBA = color.RGBA{0xEE, 0x82, 0xEE, 0xFF} // #EE82EE Gold color.RGBA = color.RGBA{0xFF, 0xD7, 0x00, 0xFF} // #FFD700 SkyBlue color.RGBA = color.RGBA{0x87, 0xCE, 0xEB, 0xFF} // #87CEEB SaddleBrown color.RGBA = color.RGBA{0x8B, 0x45, 0x13, 0xFF} // #8B4513 Tan color.RGBA = color.RGBA{0xD2, 0xB4, 0x8C, 0xFF} // #D2B48C Crimson color.RGBA = color.RGBA{0xDC, 0x14, 0x3C, 0xFF} // #DC143C Pink color.RGBA = color.RGBA{0xFF, 0xC0, 0xCB, 0xFF} // #FFC0CB Salmon color.RGBA = color.RGBA{0xFA, 0x80, 0x72, 0xFF} // #FA8072 Turquoise color.RGBA = color.RGBA{0x40, 0xE0, 0xD0, 0xFF} // #40E0D0 )
A basic set of colors based on the colors found here: https://www.w3schools.com/colors/colors_names.asp
Functions ¶
func CreateGif ¶ added in v0.3.0
func CreateGif( window Window, delayBetweenScreenshots time.Duration, delayBetweenGifFrames time.Duration, outputGifFilePath string, frameCount int, )
Start this as a go routine to create a GIF of your creation. The 256 most common colors will be found and used. The length of the captured video will be delayBetweenScreenshots * frameCount The length of the gif will be delayBetweenGifFrames * frameCount
func CreateGifDithered ¶ added in v0.3.0
func CreateGifDithered( window Window, delayBetweenScreenshots time.Duration, delayBetweenGifFrames time.Duration, outputGifFilePath string, frameCount int, )
Start this as a go routine to create a GIF of your creation. Dithering will be used to achieve more colors, but images artifacts are introduced. This is best for images with lots of shading. The length of the captured video will be delayBetweenScreenshots * frameCount The length of the gif will be delayBetweenGifFrames * frameCount
func CreateGifNearestPlan9 ¶ added in v0.3.0
func CreateGifNearestPlan9( window Window, delayBetweenScreenshots time.Duration, delayBetweenGifFrames time.Duration, outputGifFilePath string, frameCount int, )
Start this as a go routine to create a GIF of your creation. This uses the nearest color in the Plan9 palette. So it is best for images with blocks of solid colors. The length of the captured video will be delayBetweenScreenshots * frameCount The length of the gif will be delayBetweenGifFrames * frameCount
func GetNewestJustPressedFromChan ¶ added in v0.3.0
func GetNewestJustPressedFromChan(justPressedChan chan *turtlemodel.UserInput) *turtlemodel.UserInput
Get the newest keyboard/mouse just pressed event from the given channel. This returns nil if there is no new data. This will throw away all but the newest set of data available. So this should be called faster that the game update rate (60Hz), otherwise sim.PressedUserInput() should be used instead.
func Lerp ¶ added in v0.3.0
func Lerp[T constraints.Integer | constraints.Float](a, b T, ratio float64) T
Linearly interpolate between any two numbers of the same type using a ratio. The ratio is capped between 0 and 1
func LerpColor ¶ added in v0.3.0
Creates a color between the given a and b. 0 means a is given, 1 means b is given, .5 is a color half way between. The ratio is capped between 0 and 1 Currently the function floors the number instead of rounding to nearest.
func LoadSpriteFile ¶ added in v0.3.0
Load an image file and covert it to an image.Image. For decode to work on file type, it must be registered by including the codec specific package.
func Start ¶
Wrap the starting of ebitencanvas inside something that implements the Window interface so that most of the time a user will only need one import statement from this repo to make a turtle graphic. But the actual game, drawing, and sprite implementations can still be separated nicely into packages.
func TakeScreenshot ¶ added in v0.3.0
Take an image of the turtle program window's contents and save it as a PNG.
func TakeScreenshotVideo ¶ added in v0.3.0
func TakeScreenshotVideo( window Window, delayBetweenScreenshots time.Duration, frameCount int, ) []image.Image
Take a set of screenshots of the turtle program window's content and return a slice of images. The length of the captured video will be delayBetweenScreenshots * frameCount
Types ¶
type Params ¶
type Params struct { Width int // pixels Height int // pixels ShowFPS bool // Show frame per second and other info in the top left corner. }
Turtle Window creation parameters
type Window ¶
type Window interface { GetCanvas() turtlemodel.Canvas NewTurtle() turtlemodel.Turtle }
Top level interface that most users of the turtle package will exclusively use.