I'm trying to make a game in Love2D that uses a hexagon grid. The problem is, the library I'm using has all the functions I need, except a function that allows me to get the surrounding neighbors of a hexagon. The function IS there, it's just empty (the github page for it hasn't been edited in 3+ years so there's little chance of it ever being updated).
If anyone could look at the source code for the library and tell me how to go about implementing the missing function, that'll be great.
Here's the source code for the library.
getting neighbors of a hexagon in a hexagon grid?
Forum rules
Before you make a thread asking for help, read this.
Before you make a thread asking for help, read this.
-
- Prole
- Posts: 1
- Joined: Tue Oct 03, 2017 10:13 am
Re: getting neighbors of a hexagon in a hexagon grid?
There's a certain risk involved in using version 0.0.1 of incomplete, unmaintained and undocumented libraries no one else has ever used. This will probably not be the last problem you encounter.
I don't have a quick answer for you, but I can recommend this tutorial. I explains how to find neighbors, and the coord conversions you may need to make it work with this library.
It also provides an implementation guide with code that is probably of better quality than what you're currently using.
Hope that helps.
I don't have a quick answer for you, but I can recommend this tutorial. I explains how to find neighbors, and the coord conversions you may need to make it work with this library.
It also provides an implementation guide with code that is probably of better quality than what you're currently using.
Hope that helps.
Re: getting neighbors of a hexagon in a hexagon grid?
The code lib you have was actually derived from tutorial that grump referenced. I have also used same reference material to implement my hex grid, but I wrote just the stuff I needed.
To answer your question, I implemented neighbors by manually creating the table with (q, r) coordinates of all six neighbor tiles from tile located at 0,0.
If you want neighbors of (q,r), you go through the table and calculate coordinated by adding your coordinates with coordinates from table.
I also implemented lua-style iterator that you can use with for loop, so you can visit all tiles in some radius around central tile in spiraling order.
You can check out my implementation here: https://pastebin.com/0WmyB2hL
It would be nice to turn this into actual repo so people can build on it, but I don't have time to mantain it
To answer your question, I implemented neighbors by manually creating the table with (q, r) coordinates of all six neighbor tiles from tile located at 0,0.
Code: Select all
local axial_directions = {
{ 1, -1}, { 0, -1}, {-1, 0}, {-1, 1}, { 0, 1}, { 1, 0}
}
I also implemented lua-style iterator that you can use with for loop, so you can visit all tiles in some radius around central tile in spiraling order.
You can check out my implementation here: https://pastebin.com/0WmyB2hL
It would be nice to turn this into actual repo so people can build on it, but I don't have time to mantain it
Who is online
Users browsing this forum: No registered users and 1 guest