J'essaie de créer un jeu basé sur une grille hexagonale. J'ai quelques-uns des principes fondamentaux (implémentés en obtenant des voisins d'un hexagone puisque la bibliothèque ne l'a pas nativement et je l'ai fait pour que je puisse recolorer chaque hexagone individuel), mais je n'arrive pas à faire une chose:Modification des hexagones de voisinage en mode de remplissage "ligne"
Lorsque je survole un hexagone, les voisins qui l'entourent sont remplacés par le mode de remplissage de ligne (picture example) (supposé que ma souris est sur l'hexagone en haut à gauche), mais je n'arrive pas à trouver comment les remplacer quand j'ai arrêté de planer dessus.
Voici le code correspondant (poignées de vérifier si je suis planant au-dessus d'un hexagone et traite les voisins):
function love.update()
mx, my = love.mouse.getPosition()
if hexGrid:containingHex(mx, my)~=nil then --am I hovering over a hexagon?
local q,r=hexGrid:containingHex(mx, my).q,hexGrid:containingHex(mx, my).r -- get the position on the grid for the hexagon
local neighbors=hexGrid:neighbors(q,r) -- get neighbors of hexagon I'm hovering over
for dir, neighbor in pairs(neighbors) do -- loop through neighbor table
if neighbor ~=nil and hexes.getHexagon(hexGrid:getHex(neighbor.q,neighbor.r))["fill"]=="fill" then -- does neighbor exist and is their fill mode "fill"?
local neighborHexagon=hexGrid:getHex(neighbor.q,neighbor.r) -- get the hexagon from the grid
local neighborData=hexes.getHexagon(neighborHexagon) -- get it's data from a seperate dictionary (stores color data and fill mode data)
neighborData["fill"]="line" -- set fill mode to line
end
end
end
end
Je ne sais pas si vous avez mal compris mon problème. Celui sur lequel je plane ne change jamais (comme le montre l'exemple de la photo), seulement les voisins. Je veux que les ** voisins ** d'un hexagone reviennent pour se remplir quand j'ai arrêté de planer dessus. – Ducktor
@Ducktor Donc, pour clarifier, vous voulez que les hexagones aient un mode de remplissage à moins que la souris ne soit dessus, alors il devrait être en ligne? – DavisDude