Skip to content

flauwekeul/honeycomb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2cac842 Β· Jul 14, 2023
May 2, 2023
Jul 30, 2022
Jul 14, 2023
Sep 4, 2022
May 16, 2023
Jul 14, 2023
Aug 16, 2022
Aug 9, 2022
Jan 16, 2023
Jul 8, 2022
Aug 9, 2022
Jun 28, 2019
Aug 17, 2022
Aug 2, 2022
Aug 27, 2017
Oct 4, 2022
Jul 30, 2022
Jul 14, 2023
Jul 14, 2023
Aug 9, 2022
Aug 17, 2022
Jul 26, 2022
Jan 16, 2023
Jul 14, 2023

Repository files navigation

⬑ Honeycomb NPM version Minified size Gitter

A hexagon grid library made in JavaScriptTypeScript, heavily inspired by Red Blob Games' blog posts and code samples.

Honeycomb works in modern browsers and Node (>=16). It's recommended to use Honeycomb with TypeScript, but not required.

ko-fi

Installation

NPM:

npm i honeycomb-grid

Yarn:

yarn add honeycomb-grid

Or download the distribution from jsdelivr or unpkg.com.

Basic example

Create a rectangular grid of 10 by 10 hexes and log each hex:

import { defineHex, Grid, rectangle } from 'honeycomb-grid'

// 1. Create a hex class:
const Tile = defineHex({ dimensions: 30 })

// 2. Create a grid by passing the class and a "traverser" for a rectangular-shaped grid:
const grid = new Grid(Tile, rectangle({ width: 10, height: 10 }))

// 3. Iterate over the grid to log each hex:
grid.forEach(console.log)

Documentation

Documentation is available at abbekeultjes.nl/honeycomb. API docs can be found at abbekeultjes.nl/honeycomb/api/.

Backlog

These are ideas that may require further investigation πŸ•΅οΈ. Don't hesitate to open an issue or start a discussion.

  • Directions should also be given in degrees (in steps of 30Β°)?
  • Add functionality related to edges and/or corners. Use https://www.redblobgames.com/grids/parts/#hexagons.
  • Add path finding (e.g. A*) functionality. Currently available as an example, see /examples/a-star-path-finding/.
  • Clarify the "Line of sight" example (and rename to "Field of view"). Maybe add animations and some enemies as well?
  • Add examples for (procedural) map generation (from a seed).