CsTilengine is the C#/NET/Mono binding for Tilengine. It is not a direct 1:1 API translation of the original C library, but it uses familiar C# constructions as classes, arrays, etc.
- /src directory contains the single
tilengine.cs
module with the binding itself - /samples directory contains various examples ready to run and test
Tilengine native shared library must be installed separately. Please refer to https://github.com/megamarc/Tilengine about how to do it.
.NET Framework 2.0 or later must be installed
Mono tools and runtime must be installed. In Debian-based distros please execute the following command:
sudo apt-get install mono-mcs
No install step is required. Just make sure that the Tilengine library and the tilengine.cs
modules are accessible from within your own project
The following program does these actions:
- Import required classes from tilengine binding
- Initialize the engine with a resolution of 400x240, one layer, no sprites and 20 animation slots
- Set the loading path to the assets folder
- Load a tilemap, the asset that contains background layer data
- Attach the loaded tilemap to the allocated background layer
- Create a display window with default parameters: windowed, auto scale and CRT effect enabled
- Run the window loop, updating the display at each iteration until the window is closed
Source code:
using Tilengine;
class test{
static int Main(string[] args){
int frame = 0;
Engine engine = Engine.Init(400, 240, 1, 0, 20);
engine.LoadPath = "assets/sonic";
Tilemap foreground = Tilemap.FromFile("Sonic_md_fg1.tmx", null);
engine.Layers[0].SetMap(foreground);
Window window = Window.Create(null, WindowFlags.Vsync);
while (window.Process ()){
window.DrawFrame(frame);
frame += 1;
}
return 0;
}
}
Resulting output:
There's a samples.sln
Visual Studio solution file. Open it, build solution and you'll get two executables ready to run.
Open a terminal window inside the "samples" directory and the following commands:
make all
./test
./platformer
CsTilengine is released under the permissive MIT license