六边形的 Corona 顶点

好的,我正在尝试为我的游戏创建六边形。我最初的选择是拥有几个六边形的图像,但由于这些图像相互并排,我在可点击区域方面遇到了问题。

所以我猜我唯一的选择是使用多边形创建对象。这是来自Corona SDK网站的代码:

local halfW = display.contentWidth * 0.5
local halfH = display.contentHeight * 0.5

local vertices = { 0,-110, 27,-35, 105,-35, 43,16, 65,90, 0,45, -65,90, -43,15, -105,-35, -27,-35, }

local o = display.newPolygon( halfW, halfH, vertices )
o.fill = { type="image", filename="mountains.png" }
o.strokeWidth = 10
o:setStrokeColor( 1, 0, 0 )

这段代码用于创建星星。但我不知道如何使用顶点创建六边形。

点赞
用户107090
用户107090

可以使用下面的代码创建顶点数组:

local R = 45
local N = 6
local vertices = {}
local i = 0
for t = 0, 2*math.pi, 2*math.pi/N do
    i=i+1; vertices[i]= R*math.cos(t)
    i=i+1; vertices[i]= R*math.sin(t)
end

可以使用下面的代码绘制六边形:

local halfW = display.contentWidth * 0.5
local halfH = display.contentHeight * 0.5

local hexagon = display.newPolygon( halfW, halfH, vertices )
hexagon.fill = { type="image", filename="mountains.png" }
hexagon.strokeWidth = 10
hexagon:setStrokeColor( 1, 0, 0 )

我选择了 R=45 来生成和你的星星相同大小的多边形。

2015-09-19 11:50:04
用户1870706
用户1870706

你可以随时使用graphics.newMask()将蒙版应用到每个图像六边形上,这样外部区域就不能被触摸到。

2015-10-19 04:28:12