Documentation ¶
Overview ¶
Package ebiten provides graphics and input API to develop a 2D game.
You can start the game by calling the function Run.
func update(screen *ebiten.Image) error { // Define your game. } func main() { ebiten.Run(update, 320, 240, 2, "Your game's title") }
Index ¶
- Constants
- func CurrentFPS() float64
- func CursorPosition() (x, y int)
- func GamepadAxis(id int, axis int) float64
- func GamepadAxisNum(id int) int
- func GamepadButtonNum(id int) int
- func IsGamepadButtonPressed(id int, button GamepadButton) bool
- func IsKeyPressed(key Key) bool
- func IsMouseButtonPressed(mouseButton MouseButton) bool
- func Run(f func(*Image) error, width, height, scale int, title string) error
- func SetScreenScale(scale int)
- func SetScreenSize(width, height int)
- type ColorM
- func (c *ColorM) Add(other ColorM)
- func (c *ColorM) Concat(other ColorM)
- func (c *ColorM) Element(i, j int) float64
- func (c *ColorM) RotateHue(theta float64)
- func (c *ColorM) Scale(r, g, b, a float64)
- func (c *ColorM) SetElement(i, j int, element float64)
- func (c *ColorM) Translate(r, g, b, a float64)
- type DrawImageOptions
- type Filter
- type GamepadButton
- type GeoM
- type Image
- func (i *Image) At(x, y int) color.Color
- func (i *Image) Bounds() image.Rectangle
- func (i *Image) Clear() (err error)
- func (i *Image) ColorModel() color.Model
- func (i *Image) Dispose() error
- func (i *Image) DrawImage(image *Image, options *DrawImageOptions) (err error)
- func (i *Image) Fill(clr color.Color) (err error)
- func (i *Image) ReplacePixels(p []uint8) error
- func (i *Image) Size() (width, height int)
- type ImagePart
- type ImageParts
- type Key
- type MouseButton
Constants ¶
const ( GamepadButton0 = GamepadButton(ui.GamepadButton0) GamepadButton1 = GamepadButton(ui.GamepadButton1) GamepadButton2 = GamepadButton(ui.GamepadButton2) GamepadButton3 = GamepadButton(ui.GamepadButton3) GamepadButton4 = GamepadButton(ui.GamepadButton4) GamepadButton5 = GamepadButton(ui.GamepadButton5) GamepadButton6 = GamepadButton(ui.GamepadButton6) GamepadButton7 = GamepadButton(ui.GamepadButton7) GamepadButton8 = GamepadButton(ui.GamepadButton8) GamepadButton9 = GamepadButton(ui.GamepadButton9) GamepadButton10 = GamepadButton(ui.GamepadButton10) GamepadButton11 = GamepadButton(ui.GamepadButton11) GamepadButton12 = GamepadButton(ui.GamepadButton12) GamepadButton13 = GamepadButton(ui.GamepadButton13) GamepadButton14 = GamepadButton(ui.GamepadButton14) GamepadButton15 = GamepadButton(ui.GamepadButton15) )
GamepadButtons
const ( Key0 = Key(ui.Key0) Key1 = Key(ui.Key1) Key2 = Key(ui.Key2) Key3 = Key(ui.Key3) Key4 = Key(ui.Key4) Key5 = Key(ui.Key5) Key6 = Key(ui.Key6) Key7 = Key(ui.Key7) Key8 = Key(ui.Key8) Key9 = Key(ui.Key9) KeyA = Key(ui.KeyA) KeyB = Key(ui.KeyB) KeyC = Key(ui.KeyC) KeyD = Key(ui.KeyD) KeyE = Key(ui.KeyE) KeyF = Key(ui.KeyF) KeyG = Key(ui.KeyG) KeyH = Key(ui.KeyH) KeyI = Key(ui.KeyI) KeyJ = Key(ui.KeyJ) KeyK = Key(ui.KeyK) KeyL = Key(ui.KeyL) KeyM = Key(ui.KeyM) KeyN = Key(ui.KeyN) KeyO = Key(ui.KeyO) KeyP = Key(ui.KeyP) KeyQ = Key(ui.KeyQ) KeyR = Key(ui.KeyR) KeyS = Key(ui.KeyS) KeyT = Key(ui.KeyT) KeyU = Key(ui.KeyU) KeyV = Key(ui.KeyV) KeyW = Key(ui.KeyW) KeyX = Key(ui.KeyX) KeyY = Key(ui.KeyY) KeyZ = Key(ui.KeyZ) KeyAlt = Key(ui.KeyAlt) KeyBackspace = Key(ui.KeyBackspace) KeyCapsLock = Key(ui.KeyCapsLock) KeyComma = Key(ui.KeyComma) KeyControl = Key(ui.KeyControl) KeyDelete = Key(ui.KeyDelete) KeyDown = Key(ui.KeyDown) KeyEnd = Key(ui.KeyEnd) KeyEnter = Key(ui.KeyEnter) KeyEscape = Key(ui.KeyEscape) KeyF1 = Key(ui.KeyF1) KeyF2 = Key(ui.KeyF2) KeyF3 = Key(ui.KeyF3) KeyF4 = Key(ui.KeyF4) KeyF5 = Key(ui.KeyF5) KeyF6 = Key(ui.KeyF6) KeyF7 = Key(ui.KeyF7) KeyF8 = Key(ui.KeyF8) KeyF9 = Key(ui.KeyF9) KeyF10 = Key(ui.KeyF10) KeyF11 = Key(ui.KeyF11) KeyF12 = Key(ui.KeyF12) KeyHome = Key(ui.KeyHome) KeyInsert = Key(ui.KeyInsert) KeyLeft = Key(ui.KeyLeft) KeyPageDown = Key(ui.KeyPageDown) KeyPageUp = Key(ui.KeyPageUp) KeyPeriod = Key(ui.KeyPeriod) KeyRight = Key(ui.KeyRight) KeyShift = Key(ui.KeyShift) KeySpace = Key(ui.KeySpace) KeyTab = Key(ui.KeyTab) KeyUp = Key(ui.KeyUp) )
Keys
const ( MouseButtonLeft = MouseButton(ui.MouseButtonLeft) MouseButtonRight = MouseButton(ui.MouseButtonRight) MouseButtonMiddle = MouseButton(ui.MouseButtonMiddle) )
MouseButtons
const ColorMDim = 5
ColorMDim is a dimension of a ColorM.
const GeoMDim = 3
GeoMDim is a dimension of a GeoM.
Variables ¶
This section is empty.
Functions ¶
func CurrentFPS ¶ added in v1.2.0
func CurrentFPS() float64
CurrentFPS returns the current number of frames per second.
func CursorPosition ¶
func CursorPosition() (x, y int)
CursorPosition returns a position of a mouse cursor.
func GamepadAxis ¶ added in v1.2.0
GamepadAxis returns the float value [-1.0 - 1.0] of the axis.
NOTE: Gamepad API is available only on desktops, Chrome and Firefox. To use this API, browsers might require rebooting the browser.
func GamepadAxisNum ¶ added in v1.2.0
GamepadAxisNum returns the number of axes of the gamepad.
NOTE: Gamepad API is available only on desktops, Chrome and Firefox. To use this API, browsers might require rebooting the browser.
func GamepadButtonNum ¶ added in v1.2.0
GamepadButtonNum returns the number of the buttons of the gamepad.
NOTE: Gamepad API is available only on desktops, Chrome and Firefox. To use this API, browsers might require rebooting the browser.
func IsGamepadButtonPressed ¶ added in v1.2.0
func IsGamepadButtonPressed(id int, button GamepadButton) bool
IsGamepadButtonPressed returns the boolean indicating the buttons is pressed or not.
NOTE: Gamepad API is available only on desktops, Chrome and Firefox. To use this API, browsers might require rebooting the browser.
func IsKeyPressed ¶
IsKeyPressed returns a boolean indicating whether key is pressed.
func IsMouseButtonPressed ¶
func IsMouseButtonPressed(mouseButton MouseButton) bool
IsMouseButtonPressed returns a boolean indicating whether mouseButton is pressed.
func Run ¶
Run runs the game. f is a function which is called at every frame. The argument (*Image) is the render target that represents the screen.
This function must be called from the main thread.
The given function f is guaranteed to be called 60 times a second even if a rendering frame is skipped. f is not called when the screen is not shown.
func SetScreenScale ¶ added in v1.2.0
func SetScreenScale(scale int)
SetScreenSize changes the scale of the screen.
func SetScreenSize ¶ added in v1.2.0
func SetScreenSize(width, height int)
SetScreenSize changes the (logical) size of the screen. This doesn't affect the current scale of the screen.
Types ¶
type ColorM ¶
type ColorM struct {
// contains filtered or unexported fields
}
A ColorM represents a matrix to transform coloring when rendering an image.
A ColorM is applied to the source alpha color while an Image's pixels' format is alpha premultiplied. Before applying a matrix, a color is un-multiplied, and after applying the matrix, the color is multiplied again.
The initial value is identity.
func Monochrome ¶
func Monochrome() ColorM
Monochrome returns a color matrix to make an image monochrome.
func ScaleColor ¶
Deprecated as of 1.2.0-alpha. Use Scale instead.
func TranslateColor ¶
Deprecated as of 1.2.0-alpha. Use Translate instead.
func (*ColorM) Concat ¶
Concat multiplies a color matrix with the other color matrix. This is same as muptiplying the matrix other and the matrix c in this order.
func (*ColorM) SetElement ¶
SetElement sets an element at (i, j).
type DrawImageOptions ¶
type DrawImageOptions struct { ImageParts ImageParts GeoM GeoM ColorM ColorM // Deprecated (as of 1.1.0-alpha): Use ImageParts instead. Parts []ImagePart }
A DrawImageOptions represents options to render an image on an image.
type Filter ¶
type Filter int
Filter represents the type of filter to be used when an image is maginified or minified.
type GamepadButton ¶ added in v1.2.0
type GamepadButton int
A GamepadButton represents a gamepad button.
type GeoM ¶
type GeoM struct {
// contains filtered or unexported fields
}
A GeoM represents a matrix to transform geometry when rendering an image.
The initial value is identity.
func TranslateGeo ¶
Deprecated as of 1.2.0-alpha. Use Translate instead.
func (*GeoM) Concat ¶
Concat multiplies a geometry matrix with the other geometry matrix. This is same as muptiplying the matrix other and the matrix g in this order.
func (*GeoM) SetElement ¶
SetElement sets an element at (i, j).
type Image ¶
type Image struct {
// contains filtered or unexported fields
}
Image represents an image. The pixel format is alpha-premultiplied. Image implements image.Image.
func NewImage ¶
NewImage returns an empty image.
NewImage generates a new texture and a new framebuffer. Be careful that image objects will never be released even though nothing refers the image object and GC works. It is because there is no way to define finalizers for Go objects if you use GopherJS.
func NewImageFromImage ¶
NewImageFromImage creates a new image with the given image (img).
NewImageFromImage generates a new texture and a new framebuffer. Be careful that image objects will never be released even though nothing refers the image object and GC works. It is because there is no way to define finalizers for Go objects if you use GopherJS.
func (*Image) At ¶
At returns the color of the image at (x, y).
This method loads pixels from VRAM to system memory if necessary.
func (*Image) ColorModel ¶
ColorModel returns the color model of the image.
func (*Image) Dispose ¶ added in v1.2.0
Dispose disposes the image data. After disposing, the image becomes invalid. This is useful to save memory.
The behavior of any functions for a disposed image is undefined.
func (*Image) DrawImage ¶
func (i *Image) DrawImage(image *Image, options *DrawImageOptions) (err error)
DrawImage draws the given image on the receiver image.
This method accepts the options. The parts of the given image at the parts of the destination. After determining parts to draw, this applies the geometry matrix and the color matrix.
Here are the default values:
ImageParts: (0, 0) - (source width, source height) to (0, 0) - (source width, source height) (i.e. the whole source image) GeoM: Identity matrix ColorM: Identity matrix (that changes no colors)
Be careful that this method is potentially slow. It would be better if you could call this method fewer times.
func (*Image) ReplacePixels ¶ added in v1.2.0
ReplacePixels replaces the pixels of the image with p.
The given p must represent RGBA pre-multiplied alpha values. len(p) must equal to 4 * (image width) * (image height).
This function may be slow (as for implementation, this calls glTexSubImage2D).