local gameScene = cc.Scene:create()
local centerNode = cc.Node:create()
gameScene:addChild(centerNode,1)
centerNode:setPosition(240,160)
centerNode:setScale(0.5)
local bg = cc.LayerColor:create(cc.c4b(0,255,0,255))
centerNode:addChild(bg)
local point1 = cc.DrawNode:create()
point1:drawSolidCircle(cc.p(100,320), 10, math.pi/2, 50, 1.0, 1.0, cc.c4f(1,0,0,1))
bg:addChild(point1)
local point2 = cc.DrawNode:create()
point2:drawSolidCircle(cc.p(960-100,320), 10, math.pi/2, 50, 1.0, 1, cc.c4f(1,0,0,1))
bg:addChild(point2)
local footBall = cc.Sprite:create()
local point3 = cc.DrawNode:create()
point3:drawSolidCircle(cc.p(0,0), 10, math.pi/2, 50, 1.0, 1, cc.c4f(0,0,1,1))
footBall:setPosition(100,320)
footBall:addChild(point3)
centerNode:addChild(footBall,10)
local controlPt1= cc.p(200,200)
local controlPt2 = cc.p(560,200)
local orginPoint = cc.p(100,320)
local controlSp1 = cc.DrawNode:create()
controlSp1:drawSolidCircle( cc.pAdd(controlPt1,orginPoint) , 10, math.pi/2, 50, 1.0, 1, cc.c4f(1,1,0,1))
bg:addChild(controlSp1)
local controlSp2 = cc.DrawNode:create()
controlSp2:drawSolidCircle(cc.pAdd(controlPt2,orginPoint) , 10, math.pi/2, 50, 1.0, 1, cc.c4f(1,1,0,1))
bg:addChild(controlSp2)
--[[
local bezier = {
controlPt1, --控制点2
controlPt2, --控制点1
cc.p(760,0), --结束点
}
local bezierForward = cc.BezierBy:create(3, bezier)
local function resetPt()
footBall:setPosition(cc.p(100,320))
end
local rep = cc.RepeatForever:create(cc.Sequence:create(bezierForward, cc.CallFunc:create(resetPt)))
footBall:runAction(rep)
--]]
--通过移动背景来呈现原来的曲线
local bezier = {
cc.p(-controlPt1.x,-controlPt1.y), --控制点2
cc.p(-controlPt2.x,-controlPt2.y), --控制点1
cc.p(-760,0), --结束点
}
local bezierForward = cc.BezierTo:create(3, bezier)
local function resetPt()
bg:setPosition(cc.p(0,0))
end
local rep = cc.RepeatForever:create(cc.Sequence:create(bezierForward, cc.CallFunc:create(resetPt)))
bg:runAction(rep)
贝塞尔曲线
最新推荐文章于 2024-05-19 17:31:43 发布