Cocossharp CCMove для выпуска - PullRequest
0 голосов
/ 04 марта 2019

Почему я хочу сделать это переместить узлы на дно после того, как игрок нажмет один.Каждый узел должен быть справа от предыдущего.

Если игрок не щелкает слишком быстро, это работает нормально.Но когда игрок нажимает на узлы быстро (до того, как предыдущий закончил движение), узлы перекрывались, поэтому я держал список всех ожидающих и добавил это расстояние до последней позиции, это добавляет большой промежуток примерно на 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.

...