// Animation for the 'play' action, when app is in the table view func AnimateTableCardPlay(animCard *card.Card, playerInt int, quit chan bool, u *uistate.UIState) { BringNodeToFront(animCard.GetNode(), u) destination := u.DropTargets[playerInt] destinationPos := destination.GetCurrent() destinationDim := destination.GetDimensions() ch := make(chan bool) animateCardMovement(ch, animCard, destinationPos, destinationDim, u) onDone := func() { animCard.SetFrontDisplay(u.Eng) } SwitchOnChan(ch, quit, onDone, u) }
func animateCardNoChannel(animCard *card.Card, endPos, endDim *coords.Vec, u *uistate.UIState) { node := animCard.GetNode() startPos := animCard.GetCurrent() startDim := animCard.GetDimensions() iteration := 0 node.Arranger = arrangerFunc(func(eng sprite.Engine, node *sprite.Node, t clock.Time) { iteration++ if iteration < animationFrameCount { curXY := animCard.GetCurrent() curDim := animCard.GetDimensions() XYStep := endPos.MinusVec(startPos).DividedBy(animationFrameCount) dimStep := endDim.MinusVec(startDim).DividedBy(animationFrameCount) newVec := curXY.PlusVec(XYStep) dimVec := curDim.PlusVec(dimStep) animCard.Move(newVec, dimVec, eng) } else if iteration == animationFrameCount { animCard.Move(endPos, endDim, eng) } }) }