All Projects → fallahn → Tmxlite

fallahn / Tmxlite

Licence: other
lightweight C++14 parser for Tiled tmx files

Projects that are alternatives of or similar to Tmxlite

Gwork
Skinnable GUI with useful widget collection. Fork of GWEN.
Stars: ✭ 179 (-27.82%)
Mutual labels:  sdl2, sfml, cross-platform
speljongen
gameboy emulator written in c++
Stars: ✭ 15 (-93.95%)
Mutual labels:  sdl2, sfml
Anese
Another NES Emulator - written for fun & learning - first implementation of wideNES
Stars: ✭ 323 (+30.24%)
Mutual labels:  sdl2, cross-platform
Tgui
Cross-platform modern c++ GUI
Stars: ✭ 371 (+49.6%)
Mutual labels:  sfml, cross-platform
Rigelengine
A modern re-implementation of the classic DOS game Duke Nukem II
Stars: ✭ 393 (+58.47%)
Mutual labels:  sdl2, cross-platform
Engge
Open source remake of Thimbleweed Park's engine
Stars: ✭ 94 (-62.1%)
Mutual labels:  sdl2, sfml
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (+35.08%)
Mutual labels:  sfml, cross-platform
Sfml
Simple and Fast Multimedia Library
Stars: ✭ 7,316 (+2850%)
Mutual labels:  sfml, cross-platform
Engine
C++11 and SDL2 lightweight 2d game framework
Stars: ✭ 71 (-71.37%)
Mutual labels:  sdl2, cross-platform
Div Games Studio
Complete cross platform games development package, originally for DOS but now available on modern platforms.
Stars: ✭ 168 (-32.26%)
Mutual labels:  sdl2, cross-platform
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-16.13%)
Mutual labels:  sdl2, cross-platform
Haskanoid
A breakout game in Haskell using SDL and FRP, with Wiimote and Kinect support.
Stars: ✭ 242 (-2.42%)
Mutual labels:  sdl2
Dialog
Simple cross-platform dialog API for go-lang
Stars: ✭ 237 (-4.44%)
Mutual labels:  cross-platform
Qhotkey
A global shortcut/hotkey for Desktop Qt-Applications
Stars: ✭ 234 (-5.65%)
Mutual labels:  cross-platform
Mqttclient
A high-performance, high-stability, cross-platform MQTT client, developed based on the socket API, can be used on embedded devices (FreeRTOS / LiteOS / RT-Thread / TencentOS tiny), Linux, Windows, Mac, with a very concise The API interface realizes the quality of service of QOS2 with very few resources, and seamlessly connects the mbedtls encryption library.
Stars: ✭ 234 (-5.65%)
Mutual labels:  cross-platform
Isar
Super Fast Cross Platform Database for Flutter & Web Apps
Stars: ✭ 236 (-4.84%)
Mutual labels:  cross-platform
Asciimatics
A cross platform package to do curses-like operations, plus higher level APIs and widgets to create text UIs and ASCII art animations
Stars: ✭ 2,869 (+1056.85%)
Mutual labels:  cross-platform
Subtitle.js
Stream-based library for parsing and manipulating subtitle files
Stars: ✭ 234 (-5.65%)
Mutual labels:  parse
Skrape.it
A Kotlin-based testing/scraping/parsing library providing the ability to analyze and extract data from HTML (server & client-side rendered). It places particular emphasis on ease of use and a high level of readability by providing an intuitive DSL. It aims to be a testing lib, but can also be used to scrape websites in a convenient fashion.
Stars: ✭ 231 (-6.85%)
Mutual labels:  parse
Punchclock
Make sure your asynchronous operations show up to work on time
Stars: ✭ 235 (-5.24%)
Mutual labels:  cross-platform

tmxlite

Build Status Build status

Description

A lightweight C++14 parsing library for tmx map files created with the Tiled map editor. Requires no external linking, all dependencies are included. Fully supports tmx maps up to 1.0 (see here) with CSV, zlib and base64 compression. Also supports some features of newer map versions (see below). The parser is renderer agnostic, and is cross platform on Windows, linux and OS X. It has also been successfully built for Android too.

As the library contains no specific rendering functions some example projects are included, along with the relevant CMake files. These are meant mostly for guidance and are not 100% optimised, but should get you off on the right foot when using libraries such as SFML or SDL2/OpenGL. Examples for any specific rendering library are welcome via a pull request.

Other Features

As well as full support for maps up to version 1.0, tmxlite also supports these features found in newer versions of the tmx specification:

  • Object Templates - Templates (and any associated tile sets) are automatically loaded and parsed if found. Object properties are transparently handled so that objects can be read from an ObjectGroup as if they were unique instances. If an Object uses a templated tileset then Object::getTilsetName() will contain a non-empty string which can be used as a key with Map::getTemplateTilesets() to retrieve the associated tileset data.
  • Infinite Maps - Maps with the 'infinite' flag set, and saved in either CSV or base64 (compressed and uncompressed) format are supported. A TileLayer will return an empty Tile vector in these cases, and tile ID data can be retrieved instead with TileLayer::getChunks() which returns a vector of chunk data that makes up the tile layer.

Building

Either use the included Visual Studio project file if you are on Windows or the CMake file to generate project files for your compiler of choice. tmxlite can be built as both static or shared libraries, or simply include the source files in your own project.

Quick Start

There is a getting started page on the Github wiki here.

Examples

Check out the following examples:

API Documentation

Doxygen generated API documentation can be found online here or generated with doxygen using the doxy file in the tmxlite/documentation/ directory.

Important information

tmxlite uses pugixml and miniz which are included in the repository.


(c)Matt Marchant & contributors 2016 - 2021 http://trederia.blogspot.com

tmxlite - Zlib license.

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

This notice may not be removed or altered from any source distribution.


A big thanks goes to all who have contributed to tmxlite via the github community.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].