0

私はそれがどのように機能するか理解できません。しかし、Texturepacker のトリム モードを理解しているように、「Crop Keep position」は次のように機能するはずです。「すべての透明な背景が削除され、元のスプライト内の色付き領域の位置に関する情報が plist ファイルに保存されます」 COCOS2d で plist ファイルを読み込むと、色付きの領域の位置が記憶され、cocos2d で行う場合:

sprite.setPosition(new cc.p(0,0));

スプライトの位置は、色付きの領域ではなく、元の透明な領域に対して相対的になりますか? これは正しいですか。したがって、左側に 20 ピクセルの透明領域を持つスプライトをロードする場合、setPosition を X = 0 にすると、スプライトは左側の境界線から 20 ピクセル離れた場所に配置されます。それは私にはうまくいきません.cocos2dでは透過領域は考慮されていません.

私はこの方法でスプライトシートをロードしています:

var cache = cc.SpriteFrameCache.getInstance();
cache.addSpriteFrames("spritesheet.plist", "srcSprites/spritesheet.png");

this.sprite = cc.Sprite.createWithSpriteFrameName("00.png");

私が間違っていることは何ですか?

4

2 に答える 2

0

まったく同じ状況ではありませんが、似たような状況があり、TexturePacker オプションの組み合わせを見つけました。

http://www.cocos2d-x.org/forums/6/topics/42351?r=42435

于 2014-01-09T05:14:30.040 に答える
0

デフォルトでは、スプライトのテクスチャはその位置の中央に配置されます。したがって、アンカーポイントを変更しない限り、トリミングされたスプライトと比較して、トリミング位置には目に見える効果はありません。

トリムとクロップ (位置を保持) の唯一の違いは、テクスチャの contentSize が変更されることですが、スプライトの位置に対するテクスチャの位置は同じままです。

トリミング (フラッシュ位置) は、あなたが経験していることを行う必要があります。つまり、トリミングされたサイズは、テクスチャの contentSize の一部とは見なされなくなります。

TP は、クロップ機能がすべてのフレームワークでサポートされているわけではないと述べていることにも注意してください。cocos2d がその機能をサポートしているかどうかはわかりませんが、実際にはサポートしていない可能性があります。トリミングで十分なので、cocos2d では通常は必要ありません。

于 2013-11-13T02:09:35.573 に答える