74 lines
2.7 KiB
Markdown
74 lines
2.7 KiB
Markdown
![raylib-lua logo](assets/logo.png)
|
|
|
|
## raylib-lua
|
|
|
|
[LuaJIT](https://luajit.org/)-based binding for [raylib](https://www.raylib.com/), a simple and easy-to-use
|
|
library to learn videogames programming.
|
|
|
|
This binding is partially based on [raylib-wren/wray](https://github.com/TSnake41/raylib-wren).
|
|
|
|
### Usage (raylua_s)
|
|
|
|
raylua_s is the script-mode binary of raylib-lua.
|
|
Without any argument, you get into the REPL which gives you a minimal Lua
|
|
shell that allows you to run Lua code from terminal.
|
|
|
|
You can specify a Lua file as argument to run the specified Lua file.
|
|
|
|
### Usage (raylua_e)
|
|
|
|
raylua_e is the embedding-mode binary of raylib-lua.
|
|
|
|
This binary allows you to build standalone raylib applications from Lua code.
|
|
|
|
There are 3 ways to use it :
|
|
- zip mode :
|
|
If you specify a zip file as argument, this zip will be used as payload
|
|
application, this file expects to have a `main.lua` which is the entry point
|
|
of the application.
|
|
- directory mode :
|
|
Similar to zip mode except that it automatically build the zip payload from
|
|
the specified directory.
|
|
- lua mode :
|
|
Build the executable from a single Lua file.
|
|
|
|
Using `require` in embedded mode works as expected but `dofile` and `loadfile`
|
|
may not work as expected as these functions load from a external file rather
|
|
than from `package` loaders.
|
|
|
|
### Building / Updating Raylib / Contribution
|
|
|
|
To build raylib-lua from source, you need to take care that submodules are
|
|
imported, if not or you are unsure :
|
|
|
|
```shell
|
|
git submodule init
|
|
git submodule update
|
|
```
|
|
|
|
A Lua working interpreter is needed, by default luajit is used, to override it,
|
|
edit LUA variable in `makefile`.
|
|
|
|
This make take some time depending on network bandwidth.
|
|
Then, raylib-lua should build as expected using `make` tool with a working C compiler.
|
|
|
|
If you need to update raylib binding, there are few tasks to do :
|
|
- update `tools/api.h` functions signatures, keep file clean with exactly one function per line.
|
|
- update struct definitions in `src/raylib.lua`
|
|
|
|
### Licence
|
|
|
|
Copyright (C) 2020 Astie Teddy
|
|
|
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
purpose with or without fee is hereby granted, provided that the above
|
|
copyright notice and this permission notice appear in all copies.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
|
OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
|
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|