好的,所以我试图为我的游戏创建六边形。我的第一个选择是有几个六边形图像,但我可以点击区域,因为这些图像是并排放置的。
所以我想我唯一的选择是使用多边形创建对象。以下是来自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 )
该代码用于创建明星。但我不知道如何使用顶点创建六边形。
答案 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()将掩码应用到每个图像十六进制,这将使外部区域不可触摸。