Tetris クローンにいくつかの Cocos2D アニメーションを実装するのに行き詰まっています (これは完全に機能し、ロジックのバグはありません。行を削除するときにスムーズなアニメーションを実行したいだけです)。
現在のコード (アニメーションなし) は、次のようにブロックの位置をドロップするだけです。
block.position = ccp(block.position.x, block.position.y - kBlockSize);
これは、従来のテトリス プログラミングの for ループで発生します。しかし、アニメーション化しようとすると、次のようになります。
id move = [CCMoveBy actionWithDuration:0.5f position:(0, -kBlockSize)];
[block runAction:move];
一部のブロックは一度だけ下に移動しますが、同じブロックに対してアクションが複数回呼び出される可能性があります (たとえば、複数の行を分割する場合)...
なぜそれが起こるのですか?少し紛らわしいことはわかっていますが、要点は、同じことを行って異なる結果を得ているということです...明確にするためにさらにコードを投稿できます!
ありがとう!