Cocossharp CCMoveTo发行

时间:2019-03-04 04:42:57

标签: xamarin cocossharp

为什么我要在玩家单击节点后将节点移到底部。每个节点应位于上一个节点的右侧。

如果播放器的点击速度不太快,则可以正常运行。但是,当玩家快速单击节点时(在上一次完成移动之前),这些节点会重叠,因此我保留了所有待处理节点的列表,并将该距离添加到最后一个位置,这增加了大约1个空格的间隔

CCNode node = sender as CCNode;
node.RemoveFromParent();
var pos = holder.GetNextAvailablePosition(); // Finds the position of the furthest right node.
holder.AddChild(node);
var time = .5f;
var scaleBy = .5f;
var nodeSize = 180f;
pos += new CCPoint(pendingNodes.Count * (nodeSize * scaleBy), 0);
var move = new CCMoveTo(time, pos);
var scale = new CCScaleTo(time, scaleBy);
pendingNodes.Push(node);
await node.RunActionAsync(new CCSequence(move, scale, new CCCallFunc(() =>
{
    pendingNodes.Pop();
})));

我需要弄清的另一件事是如何防止节点在重新设置父级时改变位置。我将节点重新设置为Z顺序。

0 个答案:

没有答案