类似刀剑乱斗的围绕圆点转圈(2d)

local radius = 100 --半径
local num = 0 --个数
local x0,y0=200,200 --圆心
local spList = {} --node数组

local function onAdd(self, w)
	radius = math.random(20,200) --设置半径

	local sp = getSpriteNode(self) --创建node
	self:addChild(sp)
	sp:setRotation(math.random()>0.5 and 90 or 0) --node是否旋转(设不设都行)
	table.insert(spList,sp) --插入到列表里

	if #spList > 1 then --获取个数
		num = 360 / (#spList) --(小于360则顺时针)
	end

	if not self._tickID then --在计时器内 根据长度 重置位置
		local offset = 0 --每个node之间偏移的值
		local cb = function ( ... )
			for k,v in pairs(spList) do
				local radian = (2* math.pi / 360) * (num*k - offset) --计算弧度
				local x =  x0 + math.sin(radian) * radius --计算位置
				local y =  y0 + math.cos(radian) * radius
				v:setPosition(x,y)
			end
			offset = offset + 6
		end
		self._tickID = self:schedule(cb,0.05)
	end
end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值