8000 GitHub - Anbeeld/Elemap: Zero-dependency TS library for creating interactive game maps, rendered using HTML elements and CSS
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ Elemap Public

Zero-dependency TS library for creating interactive game maps, rendered using HTML elements and CSS

License

Notifications You must be signed in to change notification settings

Anbeeld/Elemap

Repository files navigation

Elemap cover image

NPM

Elemap

Elemap is a zero-dependency TS library for creating interactive game maps, rendered using HTML elements and CSS. This way you can easily populate them by adding your own HTML and manipulate everything hassle-free with JS/TS.

Live demo is available on my website.

It goes well with my other library, Tilted, made for displaying content like game maps in a modern 2.5D way.

Support my work!

Features

  • Multiple types of maps tiles supported, including rectangle (square/irregular) and hexagon (pointy/flat, odd/even) at the moment.
  • HTML & CSS rendering, meaning you can easily alter, modify and extend the map, with simple JS being enough to add any required interaction.
  • Tile shapes are set using clip-path to ensure correct mouse behaviour.
  • Spacing between tiles, outline on hover, rounded corners, and more included by default.
  • Styling system based around CSS with the ability to set custom visuals for each tile.
  • Import and export, as well as the mutation system to store arbitrary data in Elemap objects.

Installation

npm i elemap or grab JS dist file from GitHub repo.

Usage

import Elemap from 'elemap' if using npm

const elemap = new Elemap(type?, config?)

config is an object that sets up type of the map and grid parameters. Please refer to examples for more info.

config includes schema, which is an object with arguments for map visuals, used by styling system based around CSS declarations. Please refer to examples and src/style/schema.ts for more info.

elemap.render(container) to draw the map on the page, where container is an element that will store Elemap contents.

More sophisticated documentation will be provided in the future.

Future plans

  • Allow for maps of arbitrary forms by disabling unneeded tiles.
  • Provide methods to place HTML elements on tiles, move them between tiles and so on.
  • Implement granular re-rendering of a certain tile(s) and a mechanism to refresh map if some elements were removed from DOM.
  • Add methods for distance and pathfinding calculations.
  • Add plain map (without tile grid) and more tile types.
  • Provide clear usage documentation.
  • Improve styling system for better validation of provided config and more options to alter map visuals.
  • Ensure best possible performance.
  • Improve overall code quality.
  • ...more to come

Support my work!

About

Zero-dependency TS library for creating interactive game maps, rendered using HTML elements and CSS

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

0