Love2dCS - C# Wrapper for LÖVE
discord channel here: https://discord.gg/nF9wMkK | gitee-国内访问速度较快
LoveSharp(Love2dCS) is a C#/F# Wrapper for LÖVE game engine, it can be used your C#/F# based Application.
- Nuget Package - ~17MB: https://www.nuget.org/packages/LoveSharp
- Nuget Package (old) - ~17MB: https://www.nuget.org/packages/Love2dCS (old)
- Windows(x64/x86) Only Nuget Package (old)- ~6MB: https://www.nuget.org/packages/Love2dCS-win (old)
- Ubuntu(x64) Only Nuget Package (old) - ~6MB: https://www.nuget.org/packages/Love2dCS-ubuntu (old)
- MacOS(x64) Only Nuget Package (old) - ~6MB: https://www.nuget.org/packages/Love2dCS-mac (old)
- 📃 Document at https://endlesstravel.github.io | 中文文档(还没写完)
- 📕 love wiki
- ImGui Support: LoveSharp.Imgui, based on ImGui.NET , with nuget:
- Aseprite Runtime Support : LoveSharp.MetaSprite
- Spine Runtime Support : LoveSharp.Spine , with nuget:
- Tiled Map Editor Runtime Support : LoveSharp.Tiled
- Test file example / Physics Test example
- Easy to install with Visual Studio/MonoDevelop (install introduce)
windows-x86/windows-x64/ubuntu-16 x64/ubuntu-18 x64/MacOS 10.12+ x64with.net startard 1.2(.NET Core|.NET Framework 4.5.1|Mono 4.6)
Love2dCS was designed to be as close as possible to the original LÖVE API, as such the documentation provided from LÖVE largely covers usage of Love2dCS. There is a difference between Love2dCS and LÖVE where is :
- The
Love.XXX.New*in C# can access to files anywhere. In the original functin can only access the contents of the current folder. - The
love.timer.getTimein C# asThe time in seconds since the start of the gamebeacuse ofC# double to float precision - The
love.mathmodule in LÖVE is namedLove.Mathfin Love2dCS - The
love.systemmodule in LÖVE is namedLove.Specialin Love2dCS - The
love.threadmodule in LÖVE is not supply, you can use Threading.Thread in C# instead. - Most index begin from 1 at LÖVE. However, but index will begin from 0 at Love2dCS
- Love2dCS provide more build-in module to convience use.
- You can work with lua as well, but only
love.loadlove.updateandlove.draware native supported : Work with lua. The rest of callback function is not supported. - Love2dCS currently based on LÖVE 11.1
Drawing text
using Love;
class Program : Scene
{
public override void Draw()
{
Graphics.Print("Hello World!", 400, 300);
}
static void Main(string[] args)
{
Boot.Run(new Program());
}
}- Improve the document : in development
- Fully support Love 11.2 : in development
Finished:
- [√] Support Ubuntu : now support ubuntu 16/18
- [√] Add support for .net core
- [√] Support call lua function : Love.Lua.Call(name, ...arg) / Love.Lua.LoadString / Love.Lua.LoadFile (here)
- [√] Support helpper function :
Keyboard.IsPressed/Keyboard.IsReleased/Joystick.IsPressed/Joystick.IsReleased/Joystick.IsGamepadPressed/Joystick.IsGamepadReleased - [√] Add support for Physics
| Module | Process | code comment | Test | ubuntu Test | Remark |
|---|---|---|---|---|---|
| Audio | 80% | 80% | 50% test | ||
| Data | / | / | Need to binding | ||
| Event | 50% | / | |||
| FileSystem | 80% | 80% | 90% test | detail | |
| Font | 80% | 90% | |||
| Graphics | 80% | 00% | |||
| Image | 80% | 90% | |||
| Joystick | 80% | 00% | Need add code comment | ||
| Keyborad | 95% | 95% | 95% test | detail | |
| Mathf (love.math) | 80% | 90% | |||
| Mouse | 90% | 90% | 90% test | Mouse.SetRelativeMode will crash, need to repair |
|
| Physics | 80% | / | 20% test | Need more test case | |
| Sound | 90% | 90% | |||
| Special (love.system) | 90% | 90% | 90% test | ||
| Thread | / | / | Not supported / No need to support | ||
| Timer | 95% | 95% | |||
| Touch | 80% | 00% | |||
| Video | 80% | 80% | 90% test | ||
| Window | 80% | 80% |
-
(recommand) on .net 2.2 : use tool https://github.com/Hubert-Rybak/dotnet-warp to publish single executable.
-
(recommand) on .net 3.0+ : Self-contained can be used to publish single executable
-
ref: https://www.hanselman.com/blog/MakingATinyNETCore30EntirelySelfcontainedSingleExecutable.aspx
-
publish ref: https://executecommands.com/publishing-single-executable-exe-in-net-core-3-0/
-
msdn ref: https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#single-file-executables
-
msdn ref
<PublishTrimmed/>: https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#assembly-linking -
designs file: https://github.com/dotnet/designs/blob/master/accepted/single-file/design.md
- thanks matej-zajacik for his contribute on add and improve document. Without him, the grammatical errors of documents would flourish everywhere.
