An open API service indexing awesome lists of open source software.

https://github.com/xyproto/luapixels

Implement event functions in Lua and handle keypresses and draw pixels to a 320x200 256 color canvas backed by GLFW and OpenGL
https://github.com/xyproto/luapixels

cross-platform gameengine glfw go lua mode13h

Last synced: 26 days ago
JSON representation

Implement event functions in Lua and handle keypresses and draw pixels to a 320x200 256 color canvas backed by GLFW and OpenGL

Awesome Lists containing this project

README

        

# luapixels

The beginnings of what could be a game engine for using GLFW + Go + Lua.

![game.lua + results](img/screenshot.png)

### Example use

main.go:

```go
package main

import (
"log"

_ "embed"

"github.com/xyproto/luapixels"
)

//go:embed game.lua
var luaCode string

func main() {
if err := luapixels.Run(luaCode); err != nil {
log.Fatalln(err)
}
}
```

game.lua:

```lua
window_title = "Simple Example"

function at_start()
print("hi")
-- Set color at palette index 7 to red (RGB 255, 0, 0)
setpal(7, 255, 0, 0)
end

function at_every_frame()
-- Set the background color to blue (RGB 0, 128, 255)
background(0, 128, 255)
-- At (100, 100), draw a red pixel (index 7 in the palette)
plot(100, 100, 7)
end

function at_key_pressed()
quit()
end

function at_end()
print("bye!")
end
```

### Performance

There is a lot of room for improvements when it comes to performance, since this implementation is fresh and not yet optimized.

The pixels are quads right now, but a texture could be used instead. This would require no changes from the Lua code, though.

### General info

* License: BSD-3
* Version: 0.0.0