Android 检查手动图形填充的进度
我正在为手机制作一款纹身绘画游戏。有一部分玩家必须用手指在纹身上画满。在那里我必须放置一个进度条,它将显示有多少区域被玩家的颜色填充。我如何跟踪进度?有将近25个纹身,这个进度条将工作。因此,我需要一种通用技术。以下是我编写的一些源代码,可能会对您有所帮助:Android 检查手动图形填充的进度,android,algorithm,graphics,coronasdk,Android,Algorithm,Graphics,Coronasdk,我正在为手机制作一款纹身绘画游戏。有一部分玩家必须用手指在纹身上画满。在那里我必须放置一个进度条,它将显示有多少区域被玩家的颜色填充。我如何跟踪进度?有将近25个纹身,这个进度条将工作。因此,我需要一种通用技术。以下是我编写的一些源代码,可能会对您有所帮助: local endPoint, startPoint local lines, line, lx, ly, sx, sy = {} local points = {} r,g,b = 255,0,0 lineWidth = 10 local
local endPoint, startPoint
local lines, line, lx, ly, sx, sy = {}
local points = {}
r,g,b = 255,0,0
lineWidth = 10
local drawPacket
local odd = true
local function draw(event)
if event.phase == "began" then
startPoint = display.newCircle(0,0,lineWidth/2)
startPoint.x, startPoint.y = event.x, event.y
startPoint:setFillColor(r,g,b)
if startPoint.x <350 or startPoint.x > 700 then
director:changeScene("fail")
end
endPoint = display.newCircle(-100,0,lineWidth/2)
endPoint:setFillColor(r,g,b)
lineGroup:insert(startPoint)
lineGroup:insert(endPoint)
elseif event.phase == "moved" then
if not line then
print "I am now drawing the line"
line = display.newLine(startPoint.x, startPoint.y, event.x, event.y)
lines[ #lines + 1 ] = line
line.width = lineWidth
line:setColor(r,g,b)
lx,ly = startPoint.x , startPoint.y
sx,sy = event.x, event.y
lineGroup:insert(line)
else
if math.sqrt((lx-event.x)^2+(ly-event.y)^2) > 2 then
--print "I am now appending the line"
line:append( event.x, event.y)
lx, ly = event.x, event.y
end
endPoint.x = event.x
endPoint.y = event.y
if odd then
points[#points+1] = event.x
points[#points+1] = event.y
end
odd = not odd
end
elseif event.phase == "ended" then
if win == true then
if endPoint.x <350 or endPoint.x > 700 then
director:changeScene("fail")
else
director:changeScene("scene11")
end
else
director:changeScene("fail")
end
line = nil
endPoint.x, endPoint.y = event.x, event.y
print "I have ended my touch, sending data"
points = {}
end
end
background:addEventListener("touch", draw)
本地端点,起始点
局部行,行,lx,ly,sx,sy={}
局部点={}
r、 g,b=255,0,0
线宽=10
本地邮包
局部奇数=真
本地函数绘制(事件)
如果event.phase==“开始”,则
startPoint=display.newCircle(0,0,线宽/2)
startPoint.x,startPoint.y=event.x,event.y
起始点:setFillColor(r、g、b)
如果startPoint.x700,则
导演:changeScene(“失败”)
结束
端点=显示.newCircle(-100,0,线宽/2)
端点:setFillColor(r、g、b)
线组:插入(起始点)
线组:插入(端点)
elseif event.phase==“移动”然后
如果不是线的话
打印“我正在画线”
line=display.newLine(startPoint.x,startPoint.y,event.x,event.y)
线条[#线条+1]=线条
线宽=线宽
行:设置颜色(r、g、b)
lx,ly=startPoint.x,startPoint.y
sx,sy=event.x,event.y
线组:插入(线)
其他的
如果math.sqrt((lx event.x)^2+(ly event.y)^2)>2,则
--打印“我现在添加行”
行:追加(event.x,event.y)
lx,ly=event.x,event.y
结束
endPoint.x=event.x
endPoint.y=event.y
如果奇怪的话
点数[#点数+1]=事件x
点数[#点数+1]=事件y
结束
奇数=不奇数
结束
elseif event.phase==“结束”然后
如果win==true,则
如果端点为.x700,则
导演:changeScene(“失败”)
其他的
导演:改变场景(“场景11”)
结束
其他的
导演:changeScene(“失败”)
结束
直线=零
endPoint.x,endPoint.y=event.x,event.y
打印“我已结束触摸,正在发送数据”
点={}
结束
结束
背景:addEventListener(“触摸”,绘制)
确保将“背景”替换为您希望用户“纹身”的图像。祝你的项目好运