0
私は六角形のグリッドベースのゲームを作ろうとしています。私は基本的なものをいくつか持っています(図書館はそれをネイティブに持たず、個々の六角形を色づけることができるので、六角形の隣り合わせを実装しました)。しかし、私は一つのことをすることはできません:周囲の六角形を「線」塗りつぶしモードに変更する
私は六角形の上にマウスを置くと、周囲のネイバーが行の塗りつぶしモード(picture example)に変更されます(マウスが左上の六角形の上にあると仮定します)。しかし、それらを 'fill'に戻す方法を理解できないようです'私はそれの上に浮遊を停止したとき。
ここでは、関連するコード(私は近隣諸国との六角形やお得な情報の上にマウスを移動していた場合、ハンドルチェック)です:
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
わかりません。私が上に乗っているものは決して変化しません(例の写真に示されているように)、それは隣人だけです。私は六角形の**隣人**が私がそれの上に浮遊するのをやめたときに元に戻すことを望む。 – Ducktor
@Ducktorだから、明確にするために、マウスが上になければ、六角形が塗りつぶしモードにしたいと思っています。 – DavisDude