画多边形使用的类为CCPolygonShape,创建一个CCPolygonShape对象时需要传入一个CCPointArray对象,注意,CCPointArray对象并不能用一个table来代替。以下是实现过程。
这里以画正六边形为例,首先要确定六个点,这六个点以一个中心点和半径来确定,函数如下:
function getHexagonPointArray(x, y, r)
local pointArray = CCPointArray:create(6)
local i
for i = 0, 6 do
local angle = i * math.pi / 3
local point = ccp(math.cos(angle) * r + x, math.sin(angle) * r + y)
pointArray:add(point)
end
return pointArray
end
然后是画出这个正六边形:
local pointArray = getHexagonPointArray(x, y, 40)
local hexagon = CCPolygonShape:create(pointArray)
hexagon:setFill(true)
hexagon:setColor(ccc4f(r / 255, g / 255, b / 255, 1))
self:addChild(hexagon)