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
- Host: GitHub
- URL: https://github.com/xyproto/luapixels
- Owner: xyproto
- License: bsd-3-clause
- Created: 2023-12-19T13:09:17.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-20T14:36:57.000Z (over 1 year ago)
- Last Synced: 2024-05-01T20:28:21.599Z (12 months ago)
- Topics: cross-platform, gameengine, glfw, go, lua, mode13h
- Language: Go
- Homepage:
- Size: 2.75 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# luapixels
The beginnings of what could be a game engine for using GLFW + Go + Lua.

### Example use
main.go:
```go
package mainimport (
"log"_ "embed"
"github.com/xyproto/luapixels"
)//go:embed game.lua
var luaCode stringfunc 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)
endfunction 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)
endfunction at_key_pressed()
quit()
endfunction 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