Documentation
¶
Index ¶
- Variables
- func CreateGif(sim Sim, delayBetweenScreenshots time.Duration, ...)
- func CreateGifDithered(sim Sim, delayBetweenScreenshots time.Duration, ...)
- func DecodeCodedSprite(in string) image.Image
- func GetNewestJustPressedFromChan(justPressedChan chan *spritesmodels.UserInput) *spritesmodels.UserInput
- func LoadSpriteFile(path string) (image.Image, error)
- func NewSprite(sim Sim, uniqueName string, spriteID int) *sprite
- func Start(params SimParams, simStartFunc func(Sim))
- func TakeScreenshot(sim Sim, outputPNGPath string) error
- func TakeScreenshotVideo(sim Sim, delayBetweenScreenshots time.Duration, frameCount int) []image.Image
- type Sim
- type SimParams
- type Sprite
Constants ¶
This section is empty.
Variables ¶
View Source
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
View Source
var ( TurtleImage string = "" /* 9244-byte string literal not displayed */ ArrowImage string = "" /* 1004-byte string literal not displayed */ )
Created from ./cmd/convertimages/convertImages.go
Functions ¶
func CreateGif ¶ added in v0.0.2
func CreateGif( sim Sim, delayBetweenScreenshots time.Duration, delayBetweenGifFrames time.Duration, outputGifFilePath string, frameCount int, )
Start this as a go routine to create a GIF of your creation.
func CreateGifDithered ¶ added in v0.0.2
func CreateGifDithered( sim Sim, delayBetweenScreenshots time.Duration, delayBetweenGifFrames time.Duration, outputGifFilePath string, frameCount int, )
Start this as a go routine to create a GIF of your creation.
func DecodeCodedSprite ¶ added in v0.0.2
func GetNewestJustPressedFromChan ¶
func GetNewestJustPressedFromChan(justPressedChan chan *spritesmodels.UserInput) *spritesmodels.UserInput
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 TakeScreenshot ¶ added in v0.0.2
Types ¶
type Sim ¶ added in v0.0.2
type Sim interface {
GetWidth() int
GetHeight() int
AddCostume(img image.Image, name string)
AddSprite(UniqueName string) Sprite // If no name is given, a random name is generated.
DeleteSprite(Sprite)
DeleteAllSprites()
SpriteUpdatePosAngle(in Sprite)
SpriteUpdateFull(in Sprite)
AddSound(path, name string)
PlaySound(name string, volume float64) // volume must be between 0 and 1.
PressedUserInput() *spritesmodels.UserInput
SubscribeToJustPressedUserInput() chan *spritesmodels.UserInput
UnSubscribeToJustPressedUserInput(in chan *spritesmodels.UserInput)
GetSpriteID(UniqueName string) int
GetSpriteInfo(UniqueName string) spritesmodels.SpriteState
GetSpriteInfoByID(id int) spritesmodels.SpriteState
WhoIsNearMe(x, y, distance float64) []spritesmodels.NearMeInfo
SendMsg(toSpriteID int, msg any)
GetScreenshot() image.Image
Exit()
}
type Sprite ¶ added in v0.0.2
type Sprite interface {
GetSpriteID() int
GetUniqueName() string
Clone(UniqueName string) Sprite
// Updates
Costume(name string)
SetType(newType int)
Angle(angleDegrees float64)
Pos(cartX, cartY float64) // Cartesian (x,y). Center in the middle of the window
Z(int) //
Visible(visible bool)
Scale(scale float64) // Sets xScale and yScale together
XYScale(xScale, yScale float64)
Opacity(opacityPercent float64) // 0 is completely transparent and 100 is completely opaque
All(in spritesmodels.SpriteState)
// Info
GetState() spritesmodels.SpriteState
// Click Body
GetClickBody() spritesmodels.ClickOnBody
ReplaceClickBody(in spritesmodels.ClickOnBody)
// User Input
PressedUserInput() *spritesmodels.UserInput
JustPressedUserInput() *spritesmodels.UserInput
// Interact With other sprites
WhoIsNearMe(distance float64) []spritesmodels.NearMeInfo
SendMsg(toSpriteID int, msg any)
GetMsgs() []any
AddMsg(msg any)
// exit
DeleteSprite()
}
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
convertimages
command
|
|
|
runinweb
command
|
|
|
examples
|
|
|
DoublePendulum
command
|
|
|
ecosim
command
|
|
|
fallingturtles
command
|
|
|
marblemachine
command
|
|
|
play1
command
|
|
|
play2
command
|
|
|
play3
command
|
|
|
randomwalk
command
|
|
|
tumbler
command
|
|
Click to show internal directories.
Click to hide internal directories.