Raylib plugin
raylib is a simple and easy-to-use library to enjoy videogames programming. You can find more information about raylib at the raylib website
How to learn coding with raylib
“raylib does not provide the typical API documentation or a big set of tutorials. The library is designed to be minimalistic and be learned just from a cheatsheet with all required functionality and a big collection of examples to see how to use that functionality. Best way to learn to code is reading code.” [raylib website, Aug. 2022]
Many of the original raylib examples, which are written in C, were converted to SmallBASIC and are available on Github. To make it easier for you, you will find all the converted examples in the list below. If you are new to raylib it is best to start with the first example.
The original cheatsheet for C can be found here. A simple SmallBASIC version is available at Github.
How to setup SmallBASIC to use the raylib plugin
The raylib plugin is included in the release version of SmallBASIC.
SmallBASIC should find the plugin automatically. If you have problems
loading the plugin, you can copy the library (libraylib.dll or
libraylib.so) to the folder of your BASIC file. Additionally you need
the file raylibc.bas.
If it is not found automatically, please copy it to the folder of your
BASIC file, too. You have also the option to give the full path to the
plugin or to raylibc.bas with the ìmport
command.
Since raylib uses its own window management, you cannot use it together with the SDL version of SmallBASIC (sbasicg.exe or sbasicg). Please use instead the console version (sbasic.exe or sbasic).
In Linux call: sbasic MyRaylibProgram.bas.
or if you are using the AppImage:
SmallBASIC-Console_12.24-x86_64.AppImage MyRaylibProgram.bas
If you are working in Windows, then start your program with:
sbasic.exe MyRaylibProgram.bas
Examples
Core examples
Basic Window: Source code
Input Keys: Source code
Input Mouse: Source code
Input Mouse Wheel: Source code
Input Gamepad: Source code
Input Multitouch: Source code
Input Gestures: Source code
2D Camera: Source code
2D Camera Mouse Zoom: Source code
2D Camera Platformer: Source code
3D Camera Mode: Source code
3D Camera Free: Source code
3D Camera First Person: Source code
3D Picking: Source code
World Screen: Source code
Window Flags: Source code
Window Letterbox: Source code
Window Should Close: Source code
Random Values: Source code
Scissor Test: Source code
Basic Screen Manager: Source code
Custom Frame Control: Source code
Smooth Pixelperfect: Source code
Split Screen: Source code
Shapes
Basic Shapes: Source code
Collision Area: Source code
Draw Ring: Source code
Textures
Background Scrolling: Source code
Bunnymark: Source code
Draw Tiled: Source code
Image Generation: Source code
Image Processing: Source code
Mouse Painting: Source code
N-Patch Drawing: Source code
Particles Blending: Source code
Rectangles: Source code
Sprite Button: Source code
Text
Font Loading: Source code
Writing Animation: Source code
Audio
Module Playing: Source code
Music Stream: Source code
Models
Animation: Source code
Shaders
Postprocessing: Source code
Raymarching: Source code
Physics
Demo: Source code
Movement: Source code
Friction: Source code
Restitution: Source code
Miscellaneous
SmallBASIC raylib GUI: Source code
Sand: Source code
Structures and Variables
Camera2D
camera2D.target.x = 0
camera2D.target.y = 0
camera2D.offset.x = 0
camera2D.offset.y = 0
camera2D.rotation = 0
camera2D.zoom = 1
Camera3D
camera.position = [4, 2, 4]
camera.target = [0, 0, 0]
camera.up = [0, 1, 0]
camera.fovy = 60
camera.projection = c.CAMERA_PERSPECTIVE
Position
position = [0, 0, 0]
Rectangle
rectangle.x = 0
rectangle.y = 0
rectangle.width = 100
rectangle.height = 100
rectangle = {x: 0, y: 0, width: 100, height: 100}
rectangle = [x, y, width, height]
rectangle = [0, 0, 100, 100]
Vector2
vector2.x = 0
vector2.y = 0
vector2 = {x: 0, y: 0}
vector2 = [x, y]
vector2 = [0, 0]
Vector3
vector3.x = 0
vector3.y = 0
vector3.z = 0
vector3 = {x: 0, y: 0, z: 0}
vector3 = [x, y, z]
vector3 = [0, 0, 0]