mirror of
https://github.com/raylib-cs/raylib-cs
synced 2025-10-13 04:51:53 -04:00
* All the "var" variables were changed to explicit types on the raylib class * "MakeDirectory" overload, and string version of "GetApplicationDirectory" and "GetWorkingDirectory" methods * Added "Dimensions" property to "Texture2D" * New overloads for the "LoadFileData" and "SaveFileData" methods * Raymath's const "NativeLibName" is now referencing to "Raylib.NativeLibName" * Color constructors are more readable * Added "Dimensions" property to "Image" * Changed all the "var" for explicit types on the "Logging" class * Changed "Int64" for "long" on CBool, and using constructor on the operators instead setting the value manually * Added indexer to "FilePathLists" * Changed all "var" for explicit types on "Utf8Buffer" * New "GetRandomSequence" method overloads in "Raylib.Utils" acepting "int" and "float" * Added new extension "byte.Lerp" * Added new extension "Log" for "TraceLogLevel" * Constructors on Color no longer just truncate the float value, but also round it (+ 0.5f) * New static method on Color, "Color.Lerp" * Added static method "FromHSV" to Color * Added new getter method "GetHSV" on Color * Added index security on the FilePathList indexer * Added Rectangle extension * Added "MoveTowards" extensions to RaylibExtensions * Added "TranslateLocal" and "TranslateGlobal" to Transform * Removed unnecessary "partial" declarations * Updating calls and docs * Moved the "AudioCallback" delegate into the "AudioMixed.cs" File * Properties and structs marked as read-only on the "Model.cs" file * Updated the "README.md" to mentions Raylib-cs targets net6.0 and net8.0 (and also explicitly added that the "STAThread" attribute comes from the "System" namespace) * Added a few sizing utils to "Rectangle" * Added "GetScreenCenter" to "Raylib.Utils"
97 lines
3.7 KiB
Markdown
97 lines
3.7 KiB
Markdown

|
|
|
|
# Raylib-cs
|
|
|
|
C# bindings for raylib, a simple and easy-to-use library to learn videogames programming (www.raylib.com)
|
|
|
|
[](https://github.com/raylib-cs/raylib-cs/graphs/contributors)
|
|
[](LICENSE)
|
|
[](https://discord.gg/raylib)
|
|
[](https://github.com/raylib-cs/raylib-cs/stargazers)
|
|
[](https://github.com/raylib-cs/raylib-cs/actions?query=workflow%3ABuild)
|
|
|
|
Raylib-cs targets net6.0 net8.0 and uses the [official 5.5 release](https://github.com/raysan5/raylib/releases/tag/5.5)
|
|
to build the native libraries.
|
|
|
|
## Status
|
|
|
|
Raylib-cs is passively maintained. Occasional updates may be released from time to time. Pull requests may be
|
|
accepted if they don't have a large maintainence burden.
|
|
|
|
## Installation - NuGet
|
|
|
|
This is the prefered method to get started.
|
|
|
|
1) Pick a folder in which you would like to start a raylib project. For example "MyRaylibCSProj".
|
|
2) Then from a terminal (for example a VSCode terminal), whilst in the directory you just created
|
|
run the following commands. (Please keep in mind .NET should already be installed on your system)
|
|
|
|
```
|
|
dotnet new console
|
|
```
|
|
```
|
|
dotnet add package Raylib-cs
|
|
```
|
|
|
|
[](https://www.nuget.org/packages/Raylib-cs/)
|
|
|
|
If you need to edit Raylib-cs source then you will need to add the bindings as a project (see below).
|
|
|
|
If you are new to using NuGet (or you've forgotten) and are trying to run the above command in the command prompt,
|
|
remember that you need to be *inside the intended project directory* (not just inside the solution directory)
|
|
otherwise the command won't work.
|
|
|
|
## Installation - Manual
|
|
|
|
1. Download/clone the repo
|
|
|
|
2. Add [Raylib-cs/Raylib-cs.csproj](Raylib-cs/Raylib-cs.csproj) to your project as an existing project.
|
|
|
|
3. Download/build the native libraries for the platforms you want using the [official 5.5 release](https://github.com/raysan5/raylib/releases/tag/5.5).
|
|
**NOTE: the MSVC version is required for Windows platforms**
|
|
|
|
4. Setup the native libraries so they are in the same directory as the executable/can be found in the [search path](https://www.mono-project.com/docs/advanced/pinvoke/).
|
|
|
|
6. Start coding!
|
|
|
|
## Hello, World!
|
|
|
|
```csharp
|
|
using Raylib_cs;
|
|
|
|
namespace HelloWorld;
|
|
|
|
internal static class Program
|
|
{
|
|
// STAThread is required if you deploy using NativeAOT on Windows - See https://github.com/raylib-cs/raylib-cs/issues/301
|
|
[System.STAThread]
|
|
public static void Main()
|
|
{
|
|
Raylib.InitWindow(800, 480, "Hello World");
|
|
|
|
while (!Raylib.WindowShouldClose())
|
|
{
|
|
Raylib.BeginDrawing();
|
|
Raylib.ClearBackground(Color.White);
|
|
|
|
Raylib.DrawText("Hello, world!", 12, 12, 20, Color.Black);
|
|
|
|
Raylib.EndDrawing();
|
|
}
|
|
|
|
Raylib.CloseWindow();
|
|
}
|
|
}
|
|
```
|
|
|
|
## Contributing
|
|
|
|
Feel free to open an issue. If you'd like to contribute, please fork the repository and make
|
|
changes as you'd like. Pull requests are welcome.
|
|
|
|
If you want to request features or report bugs related to raylib directly (in contrast to this binding), please refer to the [author's project repo](https://github.com/raysan5/raylib).
|
|
|
|
## License
|
|
|
|
See [LICENSE](LICENSE) for details.
|