六角形的电晕顶点

时间:2015-09-19 06:50:03

标签: lua 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 )

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

2 个答案:

答案 0 :(得分:1)

尝试此操作来创建顶点数组:

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来制作与你的明星大小相同的多边形。

答案 1 :(得分:0)

你总是可以使用graphics.newMask()将掩码应用到每个图像十六进制,这将使外部区域不可触摸。