github.com/mswieboda/cray

raylib bindings for Crystal

4 stars
1 dependent
License: MIT

Nothing has been indexed for 0.1.3 yet. The tag is recorded, its shard.yml has not been read, so the manifest and dependency list below are empty because they are unknown rather than because they are absent.

Installation

# Add this to your shard.yml
dependencies:
  cray:
    github: mswieboda/cray
    version: ~> 0.1.3

Then run:

shards install

shard.yml

No shard.yml has been indexed for 0.1.3. You can read it on the repository.

Dependencies

Unknown: the shard.yml for this version has not been read yet.

README

This README is the one indexed from the repository at its latest ref, not from the tag for this version.

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