cray

Bindings for raylib, an easy-to-use game development library
0.1.5 Latest release released
mswieboda/cray
4 1
Matt Swieboda

cray

Complete RayLib 2.6 bindings to Crystal.

Original GitLab cray repo created/maintained by Zatherz with RayLib 1.8 bindings

Installation

Add this to your application's shard.yml:

dependencies:
  cray:
    github: mswieboda/cray

The RayLib libraries are copied to your projects lib_ext folder.

Currently they contain:

libraylib.2.6.0.dylib
libraylib.261.dylib
libraylib.so # (TBD: need to compile and add to repo)
libraylib.dylib

*.dylib is used for MacOS, while *.so will be for Linux.

TODO: will try to have MacOS compile to *.so as well so only one file is needed regardless of platform.

Use these environment variables to load the library when building or running your project:

Building:

env LIBRARY_PATH="$(PWD)/lib_ext" crystal build src/your_project.cr

Running:

env LD_LIBRARY_PATH="$(PWD)/lib_ext" crystal build ./your_project

See the Makefile for building and running the examples and how you might setup your Makefile for easier development.

Usage

Check out the examples in the examples directory.

You can run make run_examples to run all of the examples one after another.

The function names are the same as the names in the cheatsheet, with the following differences:

  • All of the functions, structs and constants are prefixed with LibRay. IsWindowMinimized => LibRay.window_minimized? Vector2 => LibRay::Vector2 FLAG_WINDOW_RESIZABLE => LibRay::FLAG_WINDOW_RESIZABLE
  • PascalCase is changed into snake_case (so for example InitWindow is init_window).
  • Functions returning booleans end with a question mark and the Is prefixes are stripped. For example, IsWindowMinimized is window_minimized?
  • Any other name inconsistency is a bug.

Contributors

cray:
  github: mswieboda/cray
  version: ~> 0.1.5
License MIT
Crystal 0.36.1

Libraries 1

  • libraylib: 2.6

Dependencies 0

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently