SKSpriteNode
は120ピクセル×120ピクセルです。 スプライトのデフォルトのテクスチャは、半径が60pxの円です。 私がとスプライトをアニメーション化したいと思います:SKSpriteNodeアニメーションの各フレームが中央に配置されていないアニメーション
SKAction.animate(with:timePerFrame:resize:restore:)
問題は、アニメーションの一部として、各テクスチャのサイズが未満120ピクセルX 120ピクセルで、ということですので、私はこれを行うとするスプライトアンカーポイントを設定している場合
CGPoint(x: 0.5, y: 0.5)
アニメーションフレームは、スプライトの中央に配置されます。これは、後の正しいアニメーションではありません。私は次のようにアニメーションがなりたい:、
を私は120ピクセルX 120ピクセルであることをスプライトアトラス内のすべてのアニメーションテクスチャを追加しなければならないことを意味することに私は修正するのですか?そうであれば、空のピクセルを持つ無駄なアトラススペースになります。これを達成するためのより良い方法はありますか?すなわち、アニメーション内の各テクスチャフレームの中心点を指定するか?
ありがとうございます。あなたも試すことができるはずです
これは、サイズ変更の問題ではありませんが。これはアニメーションの各フレームを正しい位置に配置する問題です。 resize = trueを設定すると、スプライトはアニメーションの各フレームで単純にサイズが変更されます。上の図の2番目の行を見てください。アニメーション中に各フレームをどのように配置すべきかを示します。 – plawres
これがサイズ変更の問題でない場合は、アニメーションを作成するのが間違っています。透明な環境に挿入した後で、あなたの好みで右または左のベースにシンプルな画像が配置されることを期待するにはどうすればよいですか?ここには2つの問題があります。あなたのスプライト(resize = trueによって解決されます)、もう一つはあなたが望む側面にあなたの作品を移動する必要があります、そうでなければ、単純な参照のピクセルを置くアニメーションをリメイクする必要があります。 (または背景色を変更する)領域 –
問題のサイズが変更されていません。実際には、アニメーションの各テクスチャフレームを個別に配置する方法がありますか?たとえば、アニメーションテクスチャフレームごとに異なるアンカーポイントを設定するのですか?例えばフレーム01アンカーポイント(0.0,0.5)、第2フレームアンカーポイント(0.25,0.5)、第3フレームアンカーポイント(0.5,0.5)など。アトラスに空のピクセルを持つ各テクスチャがあると、それは空のピクセルを保持するためのメモリの無駄です。 – plawres